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

Linux osetc 2026℃ 0评论

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


1. 首先要查找系统中所有的僵尸进程

1
2
3
4
#先查看具体进程:
ps -A -o stat,ppid,pid,cmd |grep -e Zl
#杀死z进程(这些动作是比较危险的,希望在真正的服务器上面慎用
kill -9 pid号

如果僵尸进程不叫多,可以用下面的小脚本来批量处理:

1
2
3
#!/bin/bash
ps -A -o stat,ppid,pid,cmd | grep -e Zl | \
awk '{print $2}' | xargs kill -9

如果通过kill -9无法将僵尸进程杀掉的,哪么只能采用下面的方法,找到其父进程,将父进程杀掉。


2. 通过kill -18 杀掉僵尸进程的父进程

首先通过下面的命令查找到僵尸进程的父进程id:

1
#ps -A -o ppid,pid | grep -e Zl

然后通过kill -18 ppid将其杀掉

当然还有其他的方法来查看linux系统下的僵死进程:

1
# ps -ef | grep defunct | grep -v grep

使用Awk命令杀掉僵死进程:

1
#ps -ef | grep defunct | grep -v grep | awk '{print "kill -9" $2,$3}'

转载请注明:osetc.com » Linux:如何杀掉僵尸进程(zombie process)

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址