所以我运行了多个进程:N个工作线程和1个收集器线程。
我想确定收集器线程是否处于活动状态。
这些是来自pgrep php | xargs ps
PID TTY STAT TIME COMMAND
1682 ? S 0:00 php /var/www/robot/twitterbot.php -t tokenstring -s tokensecretstring
3744 ? S 0:00 php /var/www/robot/twitterbot.php -t tokenstring -s tokensecretstring
4972 ? S 0:00 php /var/www/robot/twitterbot.php -t tokenstring -s tokensecretstring
5215 pts/0 S 0:00 php twitterbot-collector.php
我希望能够确定收集器是否正在运行。我怎样才能做到这一点?
我计划每隔几分钟检查一次cron作业,然后在脚本死亡时执行脚本。
答案 0 :(得分:0)
解决方案:
exec("pgrep php | xargs ps", $result, $r2);
$found = false;
foreach($result as $r){
if(strstr($r, 'twitterbot-collector')){
$found = true;
}
}
if(!$found){
system("php /var/www/robot/twitterbot-collector.php > /dev/null 2>/dev/null &");
}