linux僵尸进程处理

xufuangchao 2011-05-06

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

相关推荐