node.js - 杀死所有子进程,但不杀死父进程

标签 node.js linux shell

如何在不杀死父进程的情况下杀死所有子进程?我在我的 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/

相关文章:

node.js - 对 node.js 的 Reactive-Extensions/RxJS 实现

c - 在C中使用系统调用打开文件

c - 从控制台应用程序同步击键读取

linux - 如何在后台运行 eval spawn ssh 和 expect?

python - 如何为 python CGIHTTPServer 创建一个 linux 服务?

javascript - 如何修复 ' variable in loof with innerText'

python - 多核cpu中内核线程和用户线程之间的区别?

javascript - 如何使用 Node.js 检查目录是否为空?

Linux 发送邮件 - 命令行

bash - 如何在 PS1 中设置条件换行符?