我有一个PHP
侦听队列的脚本.从理论上说,它永远不应该死.有什么东西要检查它是否还在运行?喜欢的东西Ruby's God ( http://god.rubyforge.org/ )
了PHP
?
上帝是语言无关的,但是有一个适用于Windows的解决方案也会很好.
我有同样的问题 - 想要检查脚本是否正在运行.所以我想出了这个,我把它作为一个cron工作.它将正在运行的进程作为一个数组进行抓取,并循环访问每一行并检查文件名.似乎工作正常.将#user#替换为您的脚本用户.
exec("ps -U #user# -u #user# u", $output, $result); foreach ($output AS $line) if(strpos($line, "test.php")) echo "found";
在linux下运行ps如下:
ps -C php -f
然后你可以在php脚本中执行:
$output = shell_exec('ps -C php -f'); if (strpos($output, "php my_script.php")===false) { shell_exec('php my_script.php > /dev/null 2>&1 &'); }
上面的代码列出了所有正在运行的php进程,然后检查"my_script.php"是否在正在运行的进程列表中,如果没有它运行进程并且不等待进程终止继续进行它的操作正在做.