linux僵尸进程杀不死的解决方法:1、利用cat命令,查看僵尸进程的父进程id,语法为“cat /proc/僵尸进程的进程号/status”;2、利用kill命令,将父进程给杀死即可,语法为“kill -9 父进程的进程号”。
本教程操作环境:linux7.3系统、Dell G3电脑。
可以使用kill命令终止Linux系统中的进程。尽管叫这个名字,但kill命令和一组其他的命令 (例如pdill和killall) 其次是被编写/设计为向一个或多个进程发送某些信号。当未指定时,它发送的默认信号是终止进程的SIGTERM信号。
当父进程死亡或被杀死,而其子进程没有跟随其父进程一起消亡时,我们称该进程为孤儿进程。
如何杀死僵尸进程
另一方面,僵尸进程是无法被杀死的!如果你要问什么?因为他们已经死了!
每个子进程终止后,都会成为僵尸进程,然后由父其进程删除。当进程退出其存在并释放其使用过的资源时,其名称仍在OS进程表上。然后会由其父级的进程从进程表中删除其名称。当失败时,我们就有了僵尸进程,但它已经不再是一个真正的进程,而只是操作系统进程表上的一个条目了。
这就是为什么即使在已失效的 (僵尸) 进程上使用命令kill -9 (SIGKILL) 也不起作用的原因,因为没有什么可以杀死的。
因此,要杀死僵尸进程,从进程列表中删除其名称,你就必须杀死其父进程。例如,如果PID 5878是僵尸进程,而其父级是PID 4809,则要杀死僵尸(5878),也请结束PID 4809:
sudo kill -9 4809 #4809 is the parent, not the zombie
但杀死父进程时要非常小心。如果进程的父级是PID 1,并且你杀死了它,就会重新启动系统!
示例如下:
1、根据子进程查看父进程
cat /proc/pid/status
2、利用“kill -9 父进程的进程号”将父进程给删除掉;
推荐学习:Linux视频教程
以上是linux僵尸进程杀不死怎么办的详细内容。更多信息请关注PHP中文网其他相关文章!