今天top一下发现有3个僵死进程于是就记录下:
用ps -el看出的进程状态如果是Z,就是僵尸进程。
ps -ef|grep defunc可以找出僵尸进程
清除ZOMBIE(僵尸)进程可以使用如下方法:
ps -lax :可以查看父进程ID
kill –18 PPID (PPID是其父进程) 这个信号是告诉父进程,该子进程已经死亡了,请收回分配给他的资源,或者直接 kill -9 PPID
如果不行则看能否终止其父进程(如果其父进程不需要的话)。先看其父进程又无其他子进程,如果有,可能需要先kill其他子进程,也就是兄弟进程。方法是:
kill –15 PID1 PID2(PID1,PID2是僵尸进程的父进程的其它子进程)。 然后再kill父进程:kill –15 PPID
查询僵死进程:
ps -A -o stat,ppid,pid,cmd| grep defunc| grep -v grep
ps -A -o stat,ppid,pid,cmd | grep -E '^[Zz]'
批量杀死僵死进程:
ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]'| awk '{print $2}' | xargs kill -9