PHP 每 n 秒运行一次 Python 脚本

0 投票
1 回答
577 浏览
提问于 2025-04-17 18:19

我有一个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 &");

撰写回答