0

n秒ごとに実行したいPythonスクリプトがあります。PHPページでスクリプトを開始できるようにしたい。バックグラウンドで実行して、自分のページにアクセスし、[移動]をクリックしてページを離れ、数時間後に戻って、すべてを停止できるようにします。

後で画像シーケンスをタイムラプスビデオにコンパイルできるように、n秒ごとにWebカメラからスクリーンショットをキャプチャするためのWebインターフェイスを構築しようとしています。

私が使用しようとしているコマンドは次のとおりです。

nohup watch -n20 python imgDownload.py &

これは通常、コマンドラインに直接入力すると機能しますが、PHPでは入力すると機能します

$cmd = 'nohup watch -n20 python imgDownload.py &';
$output = shell_exec($cmd);

また

exec($cmd, $output);

あるいは

$cmd = 'nohup watch -n20 python ' . dirname(__FILE__) . '/imgDownload.py &';

動作しません。

以下を正常に実行できるため、shell_exec()が機能することを知っています。

echo shell_exec("echo 'hi, there'");

必要に応じて、ページに「こんにちは、そこに」を配置します。

なぜそれが機能しないのか、何か考えはありますか?これを行うためのより良い方法はありますか?

4

1 に答える 1

0

exec を使用して、出力を /dev/null にリダイレクトします。これにより、php がコマンドの終了を待たなくなります。

$cmd = 'nohup watch -n20 python imgDownload.py &';
exec($cmd . " > /dev/null &");
于 2013-03-07T21:08:06.320 に答える