如何防止子节点进程被父节点进程杀死?

我正在使用child_process.spawn / child_process.fork从node.js应用程序启动一些subprocess。 当用Ctrl-C停止父进程时,subprocess也停止。 有没有一个优雅的方式来保持subprocess运行?

你可以尝试在你的孩子中捕获SIGINT

 // child.js process.on("SIGINT", function() { console.log("sigint caught") }); // parent.js var fork = require("child_process").fork, child = fork(__dirname + "/child.js"); 

运行parent.js并按^C 你的child.js应该继续在后台运行。 我不知道在child.js的生命周期中child.js什么影响。

以下是关于node.js邮件列表中的主题的启发性讨论,虽然很老旧。

你可以调用childprocess.disconnect(); 在父或process.disconnect(); 在孩子。