【问题标题】:Determining if a process is running by its Command Name [duplicate]确定进程是否通过其命令名称运行 [重复]
【发布时间】:2011-09-08 05:47:46
【问题描述】:

所以我有多个进程在运行: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 作业每隔几分钟检查一次,然后在脚本死机时执行该脚本。

【问题讨论】:

    标签: php cron pid


    【解决方案1】:

    啊..嘟嘟。忘了我可以把它运行到 php 中的一个变量中,然后将它的子字符串....

    解决方案:

    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 &");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-25
      • 2012-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 2010-12-21
      相关资源
      最近更新 更多