Categories: Tecnologia

O que é um “processo zumbi” no Linux?

Se você é um usuário Linux, você deve ter visto processos zumbis trêmulos em sua lista de processos. Você não pode matar um processo zumbi porque ele já está morto – como um zumbi real.

Zumbis são basicamente os restos de processos mortos que não foram limpos adequadamente. Um programa que cria processos zumbis não está programado corretamente – os programas não devem permitir que processos zumbis permaneçam por aí.

O que é um processo zumbi?

Para entender o que é um processo zumbi e o que faz com que esses processos apareçam, você precisa entender um pouco como os processos funcionam no Linux.

Quando um processo morre no Linux, ele não é totalmente removido da memória imediatamente – seu descritor de processo permanece na memória (o descritor de processo ocupa apenas uma pequena quantidade de memória). O status do processo se torna EXIT_ZOMBIE e o pai do processo é notificado de que seu processo filho morreu com o sinal SIGCHLD. O processo pai deve então executar a chamada de sistema wait () para ler o status de saída do processo morto e outras informações. Isso permite que o processo pai obtenha informações do processo morto. Depois que wait () é chamado, o processo zumbi é completamente removido da memória.

Isso normalmente acontece muito rapidamente, então você não verá processos zumbis se acumulando em seu sistema. No entanto, se um processo pai não for programado corretamente e nunca chamar wait (), seus filhos zumbis ficarão na memória até que sejam limpos.

Utilitários como o GNOME System Monitor, o comando top e o comando ps exibem processos zumbis.

Perigos dos processos zumbis

Os processos zumbis não usam nenhum recurso do sistema. (Na verdade, cada um usa uma quantidade muito pequena de memória do sistema para armazenar seu descritor de processo.) No entanto, cada processo zumbi retém seu ID de processo (PID). Os sistemas Linux têm um número finito de IDs de processo – 32767 por padrão em sistemas de 32 bits. Se os zumbis estiverem se acumulando em uma taxa muito rápida – por exemplo, se um software de servidor mal programado estiver criando processos zumbis sob carga – todo o conjunto de PIDs disponíveis será eventualmente atribuído a processos zumbis, evitando que outros processos sejam iniciados.

No entanto, alguns processos zumbis pendurados não são problema – embora eles indiquem um bug com o processo pai em seu sistema.

Livrar-se dos processos zumbis

Você não pode matar processos zumbis, pois pode matar processos normais com o sinal SIGKILL – os processos zumbis já estão mortos. Lembre-se de que você não precisa se livrar dos processos zumbis, a menos que tenha uma grande quantidade em seu sistema – alguns zumbis são inofensivos. No entanto, existem algumas maneiras de se livrar dos processos zumbis.

Uma maneira é enviando o sinal SIGCHLD para o processo pai. Este sinal diz ao processo pai para executar a chamada de sistema wait () e limpar seus filhos zumbis. Envie o sinal com o comando kill , substituindo pid no comando abaixo pelo PID do processo pai:

kill -s SIGCHLD pid

No entanto, se o processo pai não estiver programado corretamente e estiver ignorando os sinais SIGCHLD, isso não ajudará. Você terá que matar ou fechar o processo pai dos zumbis. Quando o processo que criou os zumbis termina, init herda os processos zumbis e se torna seu novo pai. (init é o primeiro processo iniciado no Linux na inicialização e é atribuído ao PID 1.) init executa periodicamente a chamada de sistema wait () para limpar seus filhos zumbis, portanto, o init fará o trabalho rápido com os zumbis. Você pode reiniciar o processo pai após fechá-lo.

Se um processo pai continua a criar zumbis, ele deve ser consertado para que chame wait () corretamente para colher seus filhos zumbis. Envie um relatório de bug se um programa em seu sistema continuar criando zumbis.

maisroot

Recent Posts

O novo aplicativo “PC Manager” da Microsoft se parece muito com o CCleaner

Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…

7 meses ago

Como reiniciar um PS4

Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…

7 meses ago

Veja por que as reticências são tão assustadoras ao enviar mensagens de texto…

A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…

7 meses ago

O telescópio James Webb acaba de capturar os “Pilares da Criação”

A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…

7 meses ago

Você poderá baixar o Proton Drive mais cedo do que pensa

O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…

7 meses ago

Como aumentar o zoom no Photoshop

Para ver suas fotos mais de perto ou para uma edição precisa , você pode…

7 meses ago