我想,kill -9仍然只是发送一个信号给进程。 如果这个过程performance不好,我会想象kill -9不起作用。 事实上,今天我第一次看到kill -9在被发送到卡钻ruby进程时没有任何效果。 所以这里是我的问题:有没有更严厉的方法来杀死一个进程?
你必须重新启动机器。 如果kill -9不杀死一个进程,这意味着它被困在内核中。 除非你能弄清楚它卡在什么东西上,否则就没有什么可以做的。 卡住的原因是它在等待什么,干净地停止等待的逻辑根本不存在。
(上面假设进程已经被重新init ,否则,它的父母可能会保留它,你可能不得不杀死它的父母)
每当我有一个卡住的工作,信号9或15不会杀死它,我发送信号30(SIGPWR),几乎每一次它将清除它。 发送停电信号时我无法回想起来。
是的,重新启动…
通常虽然无法杀死-9一个进程是不是这样的问题,因为这些进程并没有太多的处理你的系统,他们可能只是僵尸。 为了摆脱它,唯一需要重启的时间是“占用”我需要使用的TCP端口。