0

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

它在页面上放置“嗨,那里”,就像它应该的那样。

任何想法为什么它不起作用?有一个更好的方法吗?

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 回答