1

プロセスの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 に答える