上一篇:获取feedburner或者/和feedsky订阅数的文本
下一篇:十个极少听过的操作系统

如何杀掉defunct的进程

有时候kill命令在*nix中似乎并不好使,在使用kill pid或者kill -9 pid之后,仍然有很多进程顽固的留存,并且显示为<defunct>进程。这些进程就成为了僵尸进程,如果用top命令看一下,顶部就显示僵尸进程的数目了。defunct进程的产生有两种可能:一种是这个程序本身就有bug,另外就是用户执行了非正常操作。这两种可能造成了某个进程被打断与父进程或/和子进程的联系,这个进程就成了僵尸~

你的系统有没有这类进程呢?首先用来分析一下:
$ ps -A | grep defunct

假定显示出来这样的结果:
8328 ? 00:00:00 mono <defunct>
25822 ? 00:00:00 ruby <defunct>

即使你再次妄图使用kill命令杀之与无形之中,仍然发现它还顽强的活着。使用pstree命令查找mono和ruby的父进程,或者如下命令列出defunct进程的父进程:
$ ps -ef | grep defunct | more

假定结果如下,PPID就是父进程的pid号:

UID PID PPID …
—————————————————————

kenno 8328 6757 0 Mar22 ? 00:00:00 [mono] <defunct>
kenno 18803 18320 0 Apr02 ? 00:00:00 [ruby] <defunct>

接下来就可以使用kill -9 6757来杀掉父进程,然后通过ps -A | grep defunct验证一下效果。

参考:Kenno’s OpenNote

发表在 Linux | 标签: ,

[互联网周末 oBugs.net][第三眼] 获取文章短链接

读完这篇文章,你觉得内容怎么样?如果你喜欢,那就 吧!

相关文章/随机文章:

2条评论

  1. 一苇 评论到:
    Google Chrome 14.0.835.186 Google Chrome 14.0.835.186 Windows 7 Windows 7

    linux,又是linux…

上一篇:获取feedburner或者/和feedsky订阅数的文本
下一篇:十个极少听过的操作系统

发表评论


使用组合键[ Ctrl + Enter ]亦可

CommentLuv badge
读完这篇文章,你觉得内容怎么样?如果你喜欢,那就