如何防止子进程在父进程终止时同时被终止?

5

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

2个回答

4
你可以尝试在子进程中捕获 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的生命周期内这将产生什么影响。
这是一个启发性的,虽然有点陈旧的讨论话题的链接:在node.js邮件列表上

0
您可以在父进程中调用childprocess.disconnect(); 或在子进程中调用process.disconnect();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接