PHP每n秒运行一次python脚本

PHP每n秒运行一次python脚本,php,python,command-line,cron,nohup,Php,Python,Command Line,Cron,Nohup,我有一个python脚本,我想每n秒运行一次。我希望能够用PHP页面启动脚本。我希望它在后台运行,这样我就可以访问我的页面,点击“开始”,离开页面,几个小时后回来,然后停止整个过程 我正在尝试构建一个web界面,每n秒从网络摄像头捕获一个屏幕截图,以便以后可以将图像序列编译成延时视频 我尝试使用的命令是: nohup watch -n20 python imgDownload.py & 当我直接将它输入命令行时,这通常是有效的,但在PHP中,当我这样做时 $cmd = 'nohup w

我有一个python脚本,我想每n秒运行一次。我希望能够用PHP页面启动脚本。我希望它在后台运行,这样我就可以访问我的页面,点击“开始”,离开页面,几个小时后回来,然后停止整个过程

我正在尝试构建一个web界面,每n秒从网络摄像头捕获一个屏幕截图,以便以后可以将图像序列编译成延时视频

我尝试使用的命令是:

nohup watch -n20 python imgDownload.py &
当我直接将它输入命令行时,这通常是有效的,但在PHP中,当我这样做时

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

甚至

$cmd = 'nohup watch -n20 python ' . dirname(__FILE__) . '/imgDownload.py &';
它不起作用

我知道shell_exec()可以工作,因为我可以成功运行以下程序:

echo shell_exec("echo 'hi, there'");
它会像应该的那样在页面上写上“你好”


你知道为什么它不起作用吗?有更好的方法吗

使用exec并将输出重定向到/dev/null,这将导致php不等待命令完成:

$cmd = 'nohup watch -n20 python imgDownload.py &';
exec($cmd . " > /dev/null &");

你有什么错误?没有错误。当页面加载时,它要么挂起,要么当我执行“exec()或die('died')”时,它选择挂起。您是否验证命令shell_exec()已启用?鉴于它挂起,它可能正在等待程序完成,php手册中讨论了许多选项来解决此问题:@AlanChavez shell_exec()适用于更简单的命令。看看我刚才的编辑。
$cmd = 'nohup watch -n20 python imgDownload.py &';
exec($cmd . " > /dev/null &");