O que é um processo de zumbi?
Um processo de zumbi é uma instância de um programa de computador que mantém um registro da tabela de processos, apesar de terminou de executar. Processos extintos como esses são tipicamente associados ao UNIX® e outros sistemas operacionais semelhantes devido à maneira como lidam com processos filhos. Quando um processo infantil termina de executar, o pai geralmente é responsável por removê -lo da tabela de processos. Geralmente, não é possível remover diretamente um processo de zumbi com o comando Kill, embora o pai possa ser feito frequentemente para removê -lo se o operador usar a notificação Signal Child (SigCHLD). Falhando nisso, um processo de zumbi pode ser removido indiretamente matando os pais. Processos extintos no UNIX® e sistemas operacionais similares podem ser vistos como análogos aos zumbis, pois mantêm uma presença na tabela de processos, apesar de não ter mais desempenhado as funções pretendidas. Quando um processo terminar eDiz -se que, às vezes, é dito que morreu, enquanto os meios pelos quais o sistema operacional recupera sua alocação de tabela de processos pode ser conhecida como colheita. O processo pai de um zumbi é tecnicamente suposto colher seus filhos, embora isso nem sempre aconteça.
Existem certos casos em que a existência de um processo de zumbi pode ser intencional ou até desejado. Depois que um processo infantil cessou a execução, o pai pode precisar executar outra instância do mesmo programa posteriormente. Se um zumbi não tiver sido removido da tabela de processos, uma nova criança não receberá a mesma identificação (ID) que a criança. Certos programas podem se beneficiar ou mesmo exigir esse tipo de diferenciação.
Se um processo pai não tiver executado o comando Wait para colher zumbis pelo qual é responsável, pode ser possível forçar o problema. Isso normalmente é feito através do comando Kill e enviando o sigchldsinalize para o processo pai. Se tudo estiver funcionando corretamente, um processo pai que recebe esse sinal deve colher seus filhos zumbis para que seus IDs e posições da tabela de processos possam ser reutilizados.
Sob certas circunstâncias, um processo pai pode ignorar o sinal SigCHLD. Se isso ocorrer e o operador ainda deseja que a tabela de processos seja limpa, o processo pai poderá ser morto. Quaisquer zumbis que o processo pai criado serão atribuídos como crianças ao processo init. Desde que inicia o comando de espera periodicamente o comando de seus filhos, qualquer zumbis pelo qual é responsável será removido da tabela de processos.