Linux进程KILL不掉的原因

简介做过Linux开发的人通常遇到过一个进程不能kill掉的情况,即使使用的是kill -9方式,而一般的教课书都只说kill -9能杀死任何进程,遇到这种情况时就会感觉到很矛盾,其它这也是正常的,通常有两种情况是不能kill掉的: 一是进程已经成为僵死进程,当它的父进程将它回收或将它的父进程kill掉即可在ps输出看不到了; 二是进程正处在内核状态中,Linux进程运行时分内核和用户两种状态,当进程进入内核状态后,会屏蔽所有信号,包括SIGKIL,所以这个时候kill -9也变得无效了。
做过Linux开发的人通常遇到过一个进程不能kill掉的情况,即使使用的是kill -9方式,而一般的教课书都只说kill -9能杀死任何进程,遇到这种情况时就会感觉到很矛盾,其它这也是正常的,通常有两种情况是不能kill掉的:
一是进程已经成为僵死进程,当它的父进程将它回收或将它的父进程kill掉即可在ps输出看不到了;

二是进程正处在内核状态中,Linux进程运行时分内核和用户两种状态,当进程进入内核状态后,会屏蔽所有信号,包括SIGKIL,所以这个时候kill -9也变得无效了。


Linux---使用kill杀不掉进程解决方案 https://www.cnblogs.com/shuai7boy/p/12540104.html

First: 按照方案,我首先重启了下看看行不行,结果重启后使用jps命令还是能看到此进程。
Second:尝试第二种解决方案,进入到 /proc/1889 目录下,执行cat status,可以看到引用它的父进程PPID是1584,于是执行命令kill -9 1584就把父进程删除了。最后执行kill 1889,然后执行jps就能看到此进程已经彻底Game Over。

新加评论 评论标题: