1

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

/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
4

2 回答 2

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' 修改输出,因此包括完整的调用。

于 2012-12-28T02:51:06.793 回答
-1

试试这个 bash 命令以获取有关进程的更多详细信息:

ps ax | grep YourProcesName

我知道至少 java 进程应该它的参数

于 2012-12-28T02:43:32.370 回答