NodeJSのChildProcess.spawn()メソッドにおいて、起動しているプロセスが強制終了したことを検出する方法はありますか?

Node.jsのchild_process.spawn()メソッドを使用して子プロセスを生成した場合、その子プロセスが終了したことを検出するには、子プロセスオブジェクトの'exit'イベントをリッスンします。このイベントは、子プロセスが終了したときに発生します¹。

以下に、その使用例を示します:

const { spawn } = require('child_process');
const child = spawn('ls', ['-lh', '/usr']);

child.on('exit', (code, signal) => {
  console.log(`子プロセスが終了コード${code} (${signal})で終了しました`);
});

このコードでは、'exit'イベントが発生したときにコールバック関数が呼び出され、子プロセスの終了コードとシグナルが引数として渡されます。子プロセスが正常に終了した場合、終了コードは0になり、シグナルはnullになります。それ以外の場合、終了コードはnullになり、シグナルは終了を引き起こしたシグナルの名前になります¹。このようにして、子プロセスの終了を検出することができます。¹。

ソース: Bing との会話 2023/11/29 (1) Child process | Node.js v21.2.0 Documentation. https://nodejs.org/api/child_process.html. (2) Node.jsで正しく子プロセスを殺す - Zenn. https://zenn.dev/erukiti/articles/nodejs-kill-childprocess. (3) node.js - How to kill all child processes on exit? - Stack Overflow. https://stackoverflow.com/questions/15833047/how-to-kill-all-child-processes-on-exit. (4) node.js - does Node kill spawned child processes .... https://stackoverflow.com/questions/59800336/does-node-kill-spawned-child-processes-automatically. (5) Child process not getting killed with Node.JS - Stack Overflow. https://stackoverflow.com/questions/6824826/child-process-not-getting-killed-with-node-js.