2009-12-15 6 views
6

Sul mio Fedora Core 9 webserver con il kernel 2.6.18, init non sta raccogliendo i processi zombie. Ciò sarebbe sopportabile se non fosse per la tabella del processo che alla fine raggiungerà un limite superiore in cui non possono essere assegnati nuovi processi.INIT mai raccogliendo zombie/processi defunte

Esempio di output di 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> 

questo è un bug del sistema operativo? configurazione errata? Sto cercando l'ispirazione per la fonte di questo problema. Grazie

risposta

2

Questo mi ha colpito su Ubuntu in 2 modi:

  1. Qualcosa non va con il kernel. Nel mio caso un driver del kernel si è arrestato in modo anomalo e l'elaborazione degli internals è andata a gonfie vele. Il modo migliore per testare questo è controllare/var/log/syslog (e dmesg) per vedere se qualcosa sembra storto - per esempio "BUG: impossibile gestire il puntatore NULL del kernel dereferenziazione a 0000000000000028",

  2. L'altra volta che ho Ho visto che questo è quando init non è il "genitore del processo figlio per la maggior parte degli scopi" (citazione in manpage effettiva). Ciò può accadere quando si utilizza il syscall di ptrace (che il programma strace utilizza internamente) per collegarsi a un processo. Per esempio, mi sono imbattuto in una situazione in cui collego strace al processo figlio B. Alla fine, il processo B termina come fa il suo genitore (non so quale ordine). Il processo B sembra quindi uno zombi di proprietà di init. Tuttavia, il suo genitore "più scopi" era in realtà il programma strace. Dopo aver ucciso lo strace, processo B fu mietuta

Problemi correlati