我有一个自动守护进程并对其进行管理的监视器。杀死一个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