2017-01-23 3 views
0

child_process.exec('mycommand', { timeout: 5000 }, callback)を実行した場合、結果のエラーがタイムアウトなどの理由で発生したかどうかわかりません。 { timeout: 5000 }オプションがchild_processに渡されたことが原因で障害が発生したかどうかを判断する方法はありますか?nodejs child_processがタイムアウトのために失敗したかどうかを調べるにはどうすればよいですか?

+0

コールバックによって受信された最初のパラメータには、エラーオブジェクトが含まれています。これはあなたが必要とするものではありませんか? –

+0

エラーオブジェクトにはコマンドの標準エラーが含まれていますが、ヒントを示す情報はありません。タイムアウトのために殺されたかどうか。 – user779159

答えて

1

信頼性が低い方法は1つだけです。
あなたのニーズ

のためにそれを使用するときにどのように動作するように注意してください:タイムアウトがトリガされ

  1. 、親プロセスはあなたが上書きしない限り、デフォルトSIGTERM信号を送出しますオプション{killSignal: 'SIGINT'}
  2. 子プロセスが終了すると、err.codeをに設定して親プロセスのコールバックcb(err,stdout,stderr)が呼び出されますとerr.signalSIGTERMにまたは何でもそれは

あるので、あなたはコールバックでerr.signalを確認することができます。また、これは、タスクマネージャから子プロセスを削除したり、シェルのkillコマンドを使用したりすることができるため、信頼性が高くありません。

関連する問題