Linux中如何杀掉僵尸进程

lfjjia 2012-01-08

1检查当前僵尸进程信息

$ps-ef|grepdefunct|grep-vgrep|wc-l

175

$top|head-2

top–15:05:54up97days,23:49,4users,loadaverage:0.66,0.45,0.39

Tasks:829total,1running,479sleeping,174stopped,175zombie

$ps-ef|grepdefunct|grep-vgrep

2获得杀僵尸进程语句

$ps-ef|grepdefunct|grep-vgrep|awk{print"kill-9"$2,$3}

执行上面获得的语句即可,使用信号量9,僵尸进程数会大大减少.

3过一会儿检查当前僵尸进程信息

$ps-ef|grepdefunct|grep-vgrep|wc-l

125

$top|head-2

top–15:29:26up98days,12min,7users,loadaverage:0.27,0.54,0.56

Tasks:632total,1running,381sleeping,125stopped,125zombie

发现僵尸进程数减少了一些,但还有不少啊.

4再次获得杀僵尸进程语句

$ps-ef|grepdefunct|grep-vgrep|awk{print"kill-18"$3}

执行上面获得的语句即可,这次使用信号量18杀其父进程,僵尸进程应该会全部消失.

5过一会儿再检查当前僵尸进程信息

$ps-ef|grepdefunct|grep-vgrep|wc-l

0

$top|head-2

top–15:39:46up98days,23min,7users,loadaverage:5.46,2.20,1.12

Tasks:134total,1running,133sleeping,0stopped,0zombie

6清除ZOMBIE(僵尸)进程原理

$kill-18PPID

PPID是其父进程,这个信号是告诉父进程,该子进程已经死亡了,请收回分配给他的资源.

如果还不行则看先看其父进程又无其他子进程,如果有,可能需要先kill其他子进程,也就是兄弟进程.

方法是:

$kill-15PID1PID2

PID1,PID2是僵尸进程的父进程的其它子进程.

然后再kill父进程:

$kill-15PPID

相关推荐