我有一個自動守護進程並對其進行管理的監視器。殺死一個node.js服務器
所以我有這個node.js程序,以某種方式衍生另一個進程。我的代碼不使用分叉或類似的東西,它只是使用setInterval進行無限循環,它執行一些數據庫工作。
這是它是如何運行:
node /path/to/program.js >> program.log 2>&1
在此之後,top -bcn1|grep program.js
顯示:
24763 ubuntu 20 0 695m 21m 5464 S 0 0.3 0:00.39 node /path/to/program.js
25053 ubuntu 20 0 4264 580 484 S 0 0.0 0:00.01 sh -c node /path/to/program.js >> program.log 2>&1
我的過程監控,然後設置與25053一個PID文件,所以當我告訴它重新啓動程序它殺死25053,再次啓動程序,現在前面命令的輸出是:
24763 ubuntu 20 0 695m 21m 5464 S 0 0.3 0:00.39 node /path/to/program.js
23520 ubuntu 20 0 630m 21m 5464 S 0 0.3 0:00.39 node /path/to/program.js
23012 ubuntu 20 0 4264 580 484 S 0 0.0 0:00.01 sh -c node /path/to/program.js >> program.log 2>&1
那麼我該如何做到這一點,所以「兒童」過程或任何它也被殺死?
我有一種感覺,這是在節點基本的東西,但我還沒有找到答案呢。
我不確定這是可能的。見[這個拉請求](https://github.com/joyent/node/pull/2832)。 – 2012-03-26 21:47:33
即使我沒有產卵或分叉什麼,這是否適用? – Ivan 2012-03-26 22:13:14
誤解了這個問題。我不相信它適用。抱歉。 – 2012-03-26 23:19:24