cla*_*ark 7 fedora init zombie-process defunct
在我的带有内核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>
Run Code Online (Sandbox Code Playgroud)
这是操作系统错误吗?配置错误?我正在寻找关于这个问题的根源的灵感.谢谢
这对我在 Ubuntu 上的影响有两个方面:
内核有问题。就我而言,内核驱动程序崩溃了,进程内部变得疯狂。测试这一点的最佳方法是检查 /var/log/syslog (和 dmesg)以查看是否有任何问题 - 例如“BUG:无法处理 0000000000000028 处的内核 NULL 指针取消引用”,
我另一次看到这种情况是 init 不是“大多数用途的子进程的父进程”(实际手册页引用)。当您使用 ptrace 系统调用(strace 程序内部使用)附加到进程时,可能会发生这种情况。例如,我遇到了一种情况,我将 strace 附加到子进程 B。最终,进程 B 与其父进程一样终止(不确定顺序)。进程 B 看起来就像是 init 拥有的僵尸进程。然而,它的“大多数用途”父级实际上是 strace 程序。杀死strace后,进程B被收割