我有一个启动了多个子进程的node.js程序。我希望能够测试这些子进程会发生什么情况,如果节点崩溃但让它们继续运行。我试过如下:杀死一个node.js程序而不会终止子进程
process.on('SIGUSR1', function(){ process.exit(0); });
这个工作对我的测试设置大,子进程保持正确的运行和节点的实例关闭,当我跑以下命令:
killall -10 node
但是,太多的我对我的生产部署感到惊讶,但却无法让儿童流程继续。我感兴趣的主要子进程是铬浏览器的一个实例。差异似乎是过程开始的方式。在我的测试设置中,我直接调用节点,但在生产环境中,我调用了一个调用的脚本。
我想找到的是上面的匿名回调函数中的一种方法,它处理SIGUSR1信号,告诉节点在它自己死亡时不关闭它的子进程。我知道我可以分离我创建的流程,但我宁愿做一些较少参与的事情(尽管承认这并不太涉及)。
我在Ubuntu 12.04上运行node 0.8.21。
感谢您的任何想法,你可以扔我的路。