我有一個啓動了多個子進程的node.js程序。我希望能夠測試這些子進程會發生什麼情況,如果節點崩潰但讓它們繼續運行。我試過如下:殺死一個node.js程序而不會終止子進程
process.on('SIGUSR1', function(){ process.exit(0); });
這個工作對我的測試設置大,子進程保持正確的運行和節點的實例關閉,當我跑以下命令:
killall -10 node
但是,太多的我對我的生產部署感到驚訝,但卻無法讓兒童流程繼續。我感興趣的主要子進程是鉻瀏覽器的一個實例。差異似乎是過程開始的方式。在我的測試設置中,我直接調用節點,但在生產環境中,我調用了一個調用的腳本。
我想找到的是上面的匿名回調函數中的一種方法,它處理SIGUSR1信號,告訴節點在它自己死亡時不關閉它的子進程。我知道我可以分離我創建的流程,但我寧願做一些較少參與的事情(儘管承認這並不太涉及)。
我在Ubuntu 12.04上運行node 0.8.21。
感謝您的任何想法,你可以扔我的路。