Skip to content Skip to main navigation Skip to footer

Linux:如何杀掉僵尸进程(zombie process)

zombie今天程序在运行之后产生了好几个僵尸进程,网上找了很多方法,居然都没什么效果,最后不得不重启机器。下面是我使用过的几个杀僵死进程的方法,可能对某些进程管用,如果在使用的时候不管用,估计只能重启机器了。


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

There are no comments yet

Leave a comment

Your email address will not be published.