【问题标题】:init never reaping zombie/defunct processesinit 从不收获僵尸/失效进程
【发布时间】:2010-12-26 20:07:40
【问题描述】:

在我的内核为 2.6.18 的 Fedora Core 9 网络服务器上,init 不会收获僵尸进程。如果不是进程表最终达到无法分配新进程的上限,这将是可以忍受的。

ps -el | grep 'Z' 的示例输出:

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
5 Z     0  2648     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
1 Z    51  2656     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
1 Z     0  2670     1  0  75   0 -     0 exit   ?        00:00:02 crond <defunct>
4 Z     0  2874     1  0  82   0 -     0 exit   ?        00:00:00 mysqld_safe <defunct>
5 Z     0 28104     1  0  76   0 -     0 exit   ?        00:00:00 httpd <defunct>
5 Z     0 28716     1  0  76   0 -     0 exit   ?        00:00:06 lfd <defunct>
5 Z    74 10172     1  0  75   0 -     0 exit   ?        00:00:00 sshd <defunct>
5 Z     0 11199     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
5 Z     0 11202     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
5 Z     0 11205     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
5 Z     0 11208     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
5 Z     0 11211     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
5 Z     0 11240     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
5 Z     0 11246     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
5 Z     0 11249     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
5 Z     0 11252     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
1 Z     0 14106     1  0  80   0 -     0 exit   ?        00:00:00 anacron <defunct>
5 Z     0 14631     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>

这是一个操作系统错误吗?配置错误?我正在寻找有关此问题根源的灵感。 谢谢

【问题讨论】:

    标签: fedora init zombie-process defunct


    【解决方案1】:

    这在 Ubuntu 上以两种方式打击了我:

    1. 内核有问题。在我的情况下,内核驱动程序崩溃了,进程内部变得疯狂。最好的测试方法是检查 /var/log/syslog(和 dmesg)以查看是否有任何问题 - 例如“BUG:无法在 0000000000000028 处处理内核 NULL 指针取消引用”,

    2. 我看到的另一次是 init 不是“大多数用途的子进程的父进程”(实际联机帮助页引用)。当您使用 ptrace 系统调用(strace 程序在内部使用)附加进程时,可能会发生这种情况。例如,我遇到了将 strace 附加到子进程 B 的情况。最终,进程 B 与其父进程一样终止(不确定顺序是什么)。进程 B 看起来就像是 init 拥有的僵尸。但是,它的“最常用”的父级实际上是 strace 程序。杀死 strace 后,进程 B 被回收

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多