如何在不杀死父进程的情况下杀死所有子进程?我在我的 Node 脚本中生成多个进程,我想杀死所有进程并生成新进程。
现在我找到了一个 terminate
npm 库,它会杀死一个父进程及其所有子进程,但我不想杀死父进程,最好的解决方案是不使用 3rd政党图书馆。
terminate(process.pid, function (err) {
if (err) {
console.error("Could not kill processes");
}
});
最佳答案
实现此目的的一种方法是传递一些可以捕获的信号(不是 SIGKILL)。然后,安装一个信号处理程序来检测当前进程是否是父进程,如果不是父进程则调用_exit()。
您可以使用 SIGUSR1 或 SIGUSR2,或者 SIGQUIT。
我已经在这里说明了这种技术。
可选地(如 Lidong 所建议的),父进程可以在发出 kill() 命令之前对信号使用 SIG_IGN。
信号(SIGQUIT,SIG_IGN);
kill(-parent_pid, SIGQUIT);
关于node.js - 杀死所有子进程,但不杀死父进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44784034/