【发布时间】:2015-05-19 18:33:12
【问题描述】:
我有一个启动多个子进程的 node.js 程序。如果节点崩溃但让它们继续运行,我希望能够测试这些子进程会发生什么。我尝试了以下方法:
process.on('SIGUSR1', function(){ process.exit(0); });
这在我的测试设置中效果很好,当我运行以下命令时,子进程保持正常运行并且节点实例关闭:
killall -10 node
但是,在我的生产部署中令我惊讶的是,它未能让子进程启动。我感兴趣的主要子进程是 chromium-browser 的一个实例。不同之处似乎在于该过程的启动方式。在我的测试设置中,我直接调用节点,但在我的生产设置中,我调用了一个执行调用的脚本。
我想在上面的匿名回调函数中找到一种方法,它可以处理 SIGUSR1 信号,告诉节点在杀死自己时不要关闭其子进程。我知道我可以分离我创建的流程,但我宁愿做一些涉及较少的事情(尽管不可否认,这并不太涉及)。
我在 Ubuntu 12.04 上运行节点 0.8.21。
感谢您提出的任何想法。
【问题讨论】:
标签: javascript linux node.js process