ps ax | grep -i 'php complete.php'
<?php
exec("ps ax | grep -i 'php complete.php'", $pids);
if(!empty($pids)) {
die("already running");
}
我去检查我的PS斧头,但din't看到complete.php,我去检查,这将输出的东西,如果complete.php正在运行的文件夹,但没有输出。检查PHP脚本在运行过程中
它给了我一个假阳性。如何检查脚本complete.php是否正在运行。
原因是因为我希望它同步运行,并且我有一个无限循环执行complete.php,每2分钟执行一次cron作业。
'的grep -i PHP complete.php'将在PROCESSLIST,产生假阳性。快速和肮脏的解决方案是'grep -i php [c] omplete.php'(只需在您选择的一个字符周围添加'[]'),但更强大的解决方案通常使用像pid文件这样的工作。如果你想运行它并继续运行,像'supervisor'这样的东西可以帮助你保持它,否则,这取决于你的系统是否使用sysvinit/systemd/upstart等。最好的行动方式是什么。 – Wrikken 2014-11-24 17:24:41
检查'exec('ps ax',$ o); print_r($ o);'return in PHP。线是否被切断? – 2014-11-24 17:54:35