使用kill -9进行节点进程的后果?

Pav*_*ati 7 linux mongodb node.js

在阅读mongodb的文档时,其中一个突出的是:

警告:

永远不要使用kill -9(即SIGKILL)来终止mongod实例.

我在使用foreman start启动节点服务器时遇到了问题.Foreman将使用相同的PID启动多个节点进程.

但问题是,当我停止节点进程时,节点实际上不会停止运行并继续使用它正在侦听的端口.

为了解决这个问题,我一直在使用sudo kill -9 <PID>我要终止的节点进程.这样做有任何负面后果吗?

另外,为什么Mongo警告不要使用kill -9终止mongod实例?

jgr*_*208 5

它没有给这个过程一个干净的机会:

1)关闭插座连接

2)清理临时文件

3)告知孩子它正在消失

4)重置其终端特性

这些是您使用时可能发生的不良后果kill -9.kill -9如果其他所有方法都失败了,您应该只作为最后的手段使用.

对于第二个问题,因为kill -9即使它正在做某事的同时kill将会在一个干净的退出后关闭进程的同时终止进程.

  • 不,因为这些操作依赖于进程的代码.如果你杀了它,就不能再做了.您可以通过浏览`/ tmp`来做一些手动工作,但是套接字很久就消失了,并且到那时连接的进程收到了一个令人讨厌的错误. (2认同)