
Ocasionalmente, um processo GNU / Linux é perdido e não faz nada, nem mesmo interfere nos ciclos da CPU. Embora os zumbis não usem recursos valiosos (como um aplicativo em execução e mal-intencionado), eles podem representar uma ameaça. Como? Quando um processo se torna um zumbi, ele mantém seu ID de processo (PID). Como os sistemas GNU / Linux têm um número finito de PIDs (embora esse número seja bastante alto), no caso de muitos processos se tornarem zumbis, não haveria PIDs suficientes e nenhum outro processo poderia ser iniciado. Não se preocupe, isso é uma teoria, porque na realidade isso seria muito raro.
As chances de isso acontecer são muito poucas. No entanto, o que é mais importante, os processos zumbis indicam que algo deu errado com um aplicativo e pode haver um erro em um determinado programa. Erros no software do data center não devem ser tolerados e devem ser corrigidos. Até que o problema seja resolvido, você pode querer verificar e eliminar os processos zumbis.
Então, quando um processo se torna um zumbi, o que fazemos? Encontre e mate esses processos. Deixe-me mostrar-lhe como.
Encontrar um Processo Zumbi
A primeira coisa a fazer é encontrar o processo zumbi. Felizmente, isso é muito fácil, graças ao comando ps. Nós veremos a saída do comando ps através do grep para listar qualquer processo cujo STAT é Z (zumbi). Abra uma janela de terminal e emita o seguinte comando:
ps aux | grep 'Z'
A saída do comando acima listará qualquer processo que inclua Z na saída (Figura 1).

Como você pode ver, há processos em execução que estão em estado zumbi. Este comando também listará qualquer processo que inclua a letra Z na saída, então você deve ignorar qualquer coisa que não tenha um Z na coluna STAT.
Abaixo eu apresento uma imagem com diversos processos zumbis:

Matar um Processo Zumbi
Em vez de decapitar, queimar ou desmembrar completamente o zumbi, queremos usar o comando kill para matar os processos zumbis. A saída do primeiro comando incluirá o PID de todos os processos zumbis, então, para matar um deles, você deve emitir o comando:
kill PID
Onde PID é o ID do processo em questão. Então, se você quer matar o processo de evolução dos zumbis (com o exemplo PID 19990), o comando seria:
kill 19990
E isso é tudo.
Você poderia ser astuto e improvisar um script bash para cuidar disso automaticamente, no entanto, você arriscaria matar um processo necessário. Por causa desse risco, eu sempre recomendo cuidar dessa tarefa manualmente. Isso é especialmente verdade, considerando que estamos trabalhando com um servidor de data center no nível de produção (embora eu tenha mostrado isso em uma máquina desktop).
Se você encontrar serviços e aplicativos que caem, você deve verificar se existem processos zumbis e se livrar deles. Depois que você souber quais processos estão sendo zumbis, envie um relatório de bug ou entre em contato com o desenvolvedor e informe-os (especialmente se isso se tornar uma ocorrência comum para um aplicativo).