subprocess.unref()


默认情况下,父进程会等待已分离的子进程退出。要防止父进程等待特定的 subprocess 退出,可以使用 subprocess.unref() 方法。这样做会导致父进程的事件循环不将子进程计入引用计数,从而允许父进程独立于子进程退出,除非子进程与父进程之间建立了 IPC 通道。

🌐 By default, the parent will wait for the detached child to exit. To prevent the parent from waiting for a given subprocess to exit, use the subprocess.unref() method. Doing so will cause the parent's event loop to not include the child in its reference count, allowing the parent to exit independently of the child, unless there is an established IPC channel between the child and the parent.

const { spawn } = require('node:child_process');

const subprocess = spawn(process.argv[0], ['child_program.js'], {
  detached: true,
  stdio: 'ignore'
});

subprocess.unref();