最初我有一个每天执行一个php文件的cronjob。显然,php文件很重,cronjob没有执行它。
我选择创建一个睡眠时间为24小时并且运行良好的守护进程,除了我相信服务器由于其不活动而在一定时间后杀死此进程。我有一个每5分钟运行一次的DEAMON,而且这个DEAMON永远不会停止,但等待24小时的那个一直停止工作。
我的计划是创建一个cronjob来检查进程是否正在运行,如果不执行它:
exec("ps auxwww|grep _DAEMON.php|grep -v grep", $output);
if(empty($output)){
exec("php -f _DAEMON.php");
}
由于某些原因,这不起作用,exec("ps auxwww|grep _DAEMON.php|grep -v grep", $output)
确实检测到脚本是否正常运行,因此exec("php -f _DAEMON.php")
是不起作用的。{/ p>
我尝试print_r
来自exec("php -f _DAEMON.php",$status);
$ {状态}这就是我得到的:
Array
(
[0] => X-Powered-By: PHP/5.2.17
[1] => Content-type: text/html
[2] =>
)
我尝试了exec("php-cli -f _DAEMON.php")
并且工作得非常好,但由于我调用的文件是一个守护程序,php-cli
使它成为我原始文件的一部分(某种include()
我相信)并冻结我的原始文件,它确实为守护进程创建一个单独的新进程,但原始文件将永远加载。
有什么想法吗?谢谢!