事件:'close'


¥Event: 'close'

  • code <number> 如果子进程自己退出,则为退出码。

    ¥code <number> The exit code if the child exited on its own.

  • signal <string> 终止子进程的信号。

    ¥signal <string> The signal by which the child process was terminated.

'close' 事件在进程结束并且子进程的 stdio 流关闭后触发。这与 'exit' 事件不同,因为多个进程可能共享相同的 stdio 流。'close' 事件将始终在 'exit' 已经触发后触发,或者如果子项未能生成则为 'error'

¥The 'close' event is emitted after a process has ended and the stdio streams of a child process have been closed. This is distinct from the 'exit' event, since multiple processes might share the same stdio streams. The 'close' event will always emit after 'exit' was already emitted, or 'error' if the child failed to spawn.

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

ls.stdout.on('data', (data) => {
  console.log(`stdout: ${data}`);
});

ls.on('close', (code) => {
  console.log(`child process close all stdio with code ${code}`);
});

ls.on('exit', (code) => {
  console.log(`child process exited with code ${code}`);
});