PHP - 如何检查进程是否正在运行多个参数

时间:2012-12-28 02:35:57

标签: php

我知道如何检查一个进程实例是否正在运行但是如何检查使用不同参数运行的特定进程,例如

/usr/local/bin/foo --config /home/config1.txt
/usr/local/bin/foo --config /home/config2.txt

以下代码仅检查进程名称,如何检查进程是否正在运行特定参数?

function is_process_running ($process_name) {
    $result = array();
    exec("/sbin/pidof {$process_name}", $result);
    if(is_array($result) && isset($result[0]) && $result[0] >= 1) {
        return true; 
    }
    return false;
}

 is_process_running('/usr/local/bin/foo --config /home/config1.txt') returns true
 is_process_running('/usr/local/bin/foo --config /home/config3.txt') returns false

2 个答案:

答案 0 :(得分:1)

function is_process_running ($process_name) {
    $result = array();
    exec("ps -Af | grep {$process_name}", $result);

    // A loop that checks for your result and also checks 
    // that the result isn't the grep command called

    // ps -ax | grep firefox asdfasd
    // returns grep --color=auto firefox asdfasd

    return false;
}

试一试。标志'f'修改输出,因此包括完整的调用。

答案 1 :(得分:-1)

尝试使用此bash命令获取有关进程的更多详细信息:

ps ax | grep YourProcesName

我知道至少java进程应该是它的Paramerers