我正在使用child_process.spawn / child_process.fork从node.js应用程序启动许多子进程。使用Ctrl-C停止父进程时,也会停止子进程。是否有一种优雅的方法来保持子进程的运行?
答案 0 :(得分:3)
您可以尝试在您的孩子中抓住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
的生命周期中这会产生什么影响。
这是关于on the node.js mailing list主题的一个启发性的,尽管很老的讨论。
答案 1 :(得分:-1)
您可以拨打父母的childprocess.disconnect();
或孩子的process.disconnect();
。