Linux:如何杀掉僵尸进程(zombie process)
July 21, 2014
今天程序在运行之后产生了好几个僵尸进程,网上找了很多方法,居然都没什么效果,最后不得不重启机器。下面是我使用过的几个杀僵死进程的方法,可能对某些进程管用,如果在使用的时候不管用,估计只能重启机器了。
1. 首先要查找系统中所有的僵尸进程
#先查看具体进程: ps -A -o stat,ppid,pid,cmd |grep -e Zl #杀死z进程(这些动作是比较危险的,希望在真正的服务器上面慎用 kill -9 pid号
如果僵尸进程不叫多,可以用下面的小脚本来批量处理:
#!/bin/bash ps -A -o stat,ppid,pid,cmd | grep -e Zl | \ awk '{print $2}' | xargs kill -9
如果通过kill -9无法将僵尸进程杀掉的,哪么只能采用下面的方法,找到其父进程,将父进程杀掉。
2. 通过kill -18 杀掉僵尸进程的父进程
首先通过下面的命令查找到僵尸进程的父进程id:
#ps -A -o ppid,pid | grep -e Zl
然后通过kill -18 ppid将其杀掉
当然还有其他的方法来查看linux系统下的僵死进程:
# ps -ef | grep defunct | grep -v grep
使用Awk命令杀掉僵死进程:
#ps -ef | grep defunct | grep -v grep | awk '{print "kill -9" $2,$3}'
0 Comments