我有一个PHP文件,我试图在后台运行一个文件。不幸的是,该文件似乎在一段时间后超时。
这就是我的尝试:
ini_set('max_execution_time', 0);
exec('php process.php /dev/null &');
该程序似乎在后台工作,但不幸的是几秒钟/几分钟后。
我得到错误502'
答案 0 :(得分:0)
用exec和shell_exec做一些实验我发现了一个完美的解决方案!我选择使用shell_exec,这样我就可以记录发生的每个通知过程(或者不会)。 (shell_exec以字符串形式返回,这比使用exec更容易,将输出分配给变量然后打开要写入的文件。)
我使用以下行调用电子邮件脚本:
shell_exec("/path/to/php /path/to/send_notifications.php '".$post_id."' 'alert' >> /path/to/alert_log/paging.log &");
重要的是要注意&在命令的最后(由@netcoder指出)。此UNIX命令在后台运行进程。
在脚本路径之后用单引号括起来的额外变量被设置为我可以在我的脚本中调用的$_SERVER['argv']
变量。
然后,电子邮件脚本使用>>输出到我的日志文件并将输出如下内容:
[2011-01-07 11:01:26] Alert Notifications Sent for http://alerts.illinoisstate.edu/2049 (SCRIPT: 38.71 seconds)
[2011-01-07 11:01:34] CRITICAL ERROR: Alert Notifications NOT sent for http://alerts.illinoisstate.edu/2049 (SCRIPT: 23.12 seconds)
谢谢!