如何杀死一个不会死的进程?


1

在生产服务器上我的“setroubleshootd”恶魔出了点问题。它占用了大量的CPU,无论如何都不会死!

我试过的

sudo killall -9 setroubleshootd
sudo killall -9 <<pid>>

Answers:


3

不幸的是,最好的解决方案是重启。它被困在内核中。

你可以试着解开它。但这本质上是有风险的。它可能导致内核崩溃。有序重启更安全。

基本上,你解开它的方式是弄清楚它在做什么(使用类似的工具) ls /proc/<pid>/fdtop,等等)并使某些事情发生变化,无论它被困在哪里。如果它停留在某个进程上,请尝试终止该进程。如果它卡在文件上,请尝试删除该文件。这很少有效,但即使有,我也会考虑系统被污染并重新启动它。

弄乱它可能会导致更多进程陷入“隐藏”之中。


2

不是你想要的答案,但如果这个过程不会消亡,你可能会失败 - 你可能需要重新启动。 (我注意到杀死PID的命令是kill -9&lt;&gt;而不是killall。

我怀疑如果启用了Mafic_SysRQ密钥(如NFS挂载),可以使用Mafic_SysRQ密钥来解决可能存在的非常小的事件子集 - 但我没有玩过这么多而且它是针对开发人员的 - 我怀疑,通常不会默认启用。更多信息 这里。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.