Linux 如何杀死僵尸进程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 如何杀死僵尸进程相关的知识,希望对你有一定的参考价值。


问题描述:

shell > top
top - 11:14:17 up 630 days, 21:23,  1 user,  load average: 0.23, 0.81, 1.07
Tasks: 389 total,   1 running, 385 sleeping,   0 stopped,   3 zombie
Cpu(s):  3.6%us,  0.8%sy,  0.0%ni, 95.3%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:  24596748k total,  3346824k used, 21249924k free,    50344k buffers
Swap:  8388600k total,     9704k used,  8378896k free,  1649016k cached

# 发现有三个僵尸进程 3 zombie ,这是因为先杀死了父进程导致

shell > ps aux | grep Z
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      7811  0.0  0.0      0     0 ?        Zs   11:15   0:00 [yiic_elastic_kt] <defunct>
root      8446  0.0  0.0 103260   872 pts/1    R+   11:18   0:00 grep Z

# 不给面子,已经自动死了两个,估计是太阳出来了

shell > kill -9 7811

# 这样是杀不死的,还顽强的存活着

解决方法:

shell > ps -ef | grep defunct
root      8850  8840  0 11:20 ?        00:00:00 [yiic_elastic_kt] <defunct>
root      8851  8842  0 11:20 ?        00:00:00 [yiic_elastic_kt] <defunct>
root      8853  8843  0 11:20 ?        00:00:00 [yiic_elastic_kt] <defunct>
root      8855  8839  0 11:20 ?        00:00:00 [yiic_elastic_kt] <defunct>
root      9066  7621  0 11:20 pts/1    00:00:00 grep defunct

# 我去,又跑出来三个...

shell > ps -ef | grep defunct | awk {print $3} | xargs -i kill {}

# $3 是这些僵尸进程的父进程 PID ( PPID ),杀之!

shell > ps -ef | grep defunct
root     10008  7621  0 11:24 pts/1    00:00:00 grep defunct

# 已经灰飞烟灭!

以上是关于Linux 如何杀死僵尸进程的主要内容,如果未能解决你的问题,请参考以下文章

Linux 如何杀死僵尸进程

如何杀死僵尸进程

Linux系列:查看并杀死僵尸进程,自动告警方法

Linux系列:查看并杀死僵尸进程,自动告警方法

如何使用子进程模块杀死(或避免)僵尸进程

ubuntu Linux怎么解决僵尸进程