PHP 每 n 秒运行一次 Python 脚本
我有一个Python脚本,想要每隔n秒运行一次。我希望能通过一个PHP页面来启动这个脚本。这个脚本应该在后台运行,这样我可以访问我的页面,点击“开始”,然后离开页面,几个小时后再回来停止整个过程。
我正在尝试建立一个网页界面,用来每隔n秒从网络摄像头捕捉一张截图,这样我可以把这些图片合成一个延时视频。
我想使用的命令是:
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'");
它会在页面上显示“hi, there”,就像应该的那样。
有没有人知道为什么它不工作?有没有更好的方法来实现这个?
1 个回答
0
使用exec命令并把输出重定向到/dev/null,这样PHP就不会等待命令执行完毕:
$cmd = 'nohup watch -n20 python imgDownload.py &';
exec($cmd . " > /dev/null &");