2009-12-15 4 views
6

На моем веб-сервере Fedora Core 9 с ядром 2.6.18 init не собирает процессы зомби. Это было бы терпимо, если бы не таблица процесса в конечном итоге достигла верхнего предела, где новые процессы не могут быть выделены.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> 

Является ли это ошибка OS? расконфигурация? Я ищу вдохновение относительно источника этой проблемы. Благодаря

ответ

2

Это ударил меня по Ubuntu 2-мя способами:

  1. Что-то не так с ядром. В моем случае драйвер ядра разбился, и обработка внутренних дел пошла на брейкеры. Лучший способ проверить это - проверить/var/log/syslog (и dmesg), чтобы убедиться, что что-то выглядит неуместным - например, «BUG: невозможно обработать различие в указателе ядра NULL в 0000000000000028»,

  2. В другой раз я «Мы видели это, когда init не является« родителем дочернего процесса для большинства целей »(фактическая кадровая ссылка). Это может произойти, если вы используете системный вызов ptrace (который программа strace использует внутренне) для присоединения к процессу. Например, я попал в ситуацию, когда я привязываю strace к дочернему процессу B. В конце концов, процесс B заканчивается так же, как и его родитель (не уверен, какой порядок). Процесс B тогда выглядит как зомби, принадлежащий init. Однако его родителем «большинство целей» была фактически программа strace. После убийства strace был обработан процесс B