0

そうです、私はPHPスクリプトでPythonスクリプトを呼び出しています。このPHPスクリプトは、Pythonスクリプトが呼び出された後も続行する必要があります。

私は次のすべてを試しましたが、PHPはスクリプトが応答するまで待つことを主張しています。

すべて試しました:-

system('nohup python /home/process/script.py -i '.escapeshellarg($location).' &');
system('nohup python /home/process/script.py -i '.escapeshellarg($location).' 2>&1 &');
system('nohup python /home/process/script.py -i '.escapeshellarg($location).' < /dev/null 2>&1 &');
exec('nohup python /home/process/script.py -i '.escapeshellarg($location).' &');
exec('nohup python /home/process/script.py -i '.escapeshellarg($location).' 2>&1 &');
exec('nohup python /home/process/script.py -i '.escapeshellarg($location).' < /dev/null 2>&1 &');

また、パススルーを使用して、nohupを使用せずに試しました。

どんな助けでも大歓迎です。

4

1 に答える 1

2

exec docの引用:

プログラムがこの関数で開始された場合、プログラムがバックグラウンドで実行を継続するには、プログラムの出力をファイルまたは別の出力ストリームにリダイレクトする必要があります。そうしないと、プログラムの実行が終了するまでPHPがハングします。

代わりにこれを試してください:

exec('nohup python /home/process/script.py -i '.escapeshellarg($location).' &>/dev/null &');
于 2012-02-17T10:48:28.357 に答える