23

Node.js を使用して、任意の PID がシステム上で実行されているかどうかを確認する方法はありますか? /procNode.js スクリプトに適切な読み取り権限または Windows の同等の権限があると仮定します。

これは、同期的に行うことができます。

if (isAlive(pid)) { //do stuff }

または非同期的に:

getProcessStatus(pid, function(status) {
    if (status === "alive") { //do stuff }
}

実行中の Node.js プロセスの PID だけでなく、任意のシステム PID で機能する解決策を見つけたいと考えていることに注意してください。

4

3 に答える 3

30

呼び出しprocess.kill(pid, 0)て、try/catch でラップすることができます。

http://nodejs.org/api/process.html#process_process_kill_pid_signal -

「ターゲットが存在しない場合はエラーがスローされ、特別なケースとして、シグナル 0 を使用してプロセスの存在をテストできます。」

例:

function pidIsRunning(pid) {
  try {
    process.kill(pid, 0);
    return true;
  } catch(e) {
    return false;
  }
}
于 2014-01-22T23:28:32.907 に答える
19

プロジェクトでpidが実行されているかどうかも確認する必要がありました。私はこの使用法の答えを受け取り、 is- runninghttps://npmjs.org/package/is-runningkill -0 <PID>というモジュールにまとめました。

npm install is-running

于 2013-02-14T22:07:41.320 に答える
-1

私は専門家ではありませんが、子プロセスを生成して、コマンド ライン ツールでステータスを確認することはできませんか?

于 2013-01-18T01:11:35.237 に答える