如何防止子节点进程被父节点进程杀死?
我使用 child_process.spawn/child_process.fork 从 node.js 应用程序启动多个子进程。当使用 Ctrl-C 停止父进程时,子进程也会停止。有没有一种优雅的方法来保持子进程运行?
I'm using child_process.spawn/child_process.fork to start a number of child processes from a node.js application. When stopping the parent process with Ctrl-C the child processes are stopped too. Is there an elegant way to keep the child processes running?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以尝试在您的孩子中捕获
SIGINT
:运行
parent.js
并按^C
。您的child.js
应继续在后台运行。我不知道这在child.js
的生命周期中会产生什么影响。这是关于 Node.js 邮件主题的富有启发性的讨论,尽管已经很老了列表。
You could try catching
SIGINT
in your child:Run
parent.js
and press^C
. Yourchild.js
should continue running in the background. I don't know what the effects of this will be during the lifetime ofchild.js
.Here is an enlightening, albeit pretty old, discussion of the topic on the node.js mailing list.
您可以在父进程中调用
childprocess.disconnect();
或在子进程中调用process.disconnect();
。You could call
childprocess.disconnect();
in the parent orprocess.disconnect();
in the child.