init nunca colhendo processos de zumbi/extinto
-
19-09-2019 - |
Pergunta
No meu servidor da Web do Fedora Core 9 com o Kernel 2.6.18, o init não está colhendo processos de zumbi. Isso seria suportável se não fosse a tabela de processos, chegando a um limite superior, onde nenhum novo processo pode ser alocado.
Saída de amostra de 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>
Isso é um bug do sistema operacional? Encontro -se? Estou procurando inspiração quanto à fonte desse problema. Obrigado
Solução
Isso me atingiu no Ubuntu de duas maneiras:
Algo errado com o kernel. No meu caso, um motorista do kernel caiu e os processos internos ficaram loucos. A melhor maneira de testar isso é verificar/var/log/syslog (e dmesg) para ver se algo parece errado - por exemplo "bug: incapaz de lidar com a desreferência do ponteiro nulo do kernel em 000000000000000028",
A outra vez que vi isso é quando o init não é o "pai do processo filho para a maioria dos propósitos" (cotação real da mangueira). Isso pode acontecer quando você usa o PTRACE SYSCALL (que o programa STRACE usa internamente) para anexar em um processo. Por exemplo, entrei em uma situação em que anexo ao processo da criança B. eventualmente, o processo B termina, assim como seus pais (não tenho certeza de qual ordem). O processo B então parece um zumbi de propriedade da Init. No entanto, seus pais "mais propósitos" eram na verdade o programa Strace. Depois de matar o Strace, o processo B foi colhido