Zumbis são processos mortos. Eles não podem ser 'matar' (Você não pode matar os MORTOS). Todos os processos acabam morrendo e, quando o fazem, tornam-se zumbis. Eles não consomem quase nenhum recurso, o que é esperado, porque estão mortos! O motivo dos zumbis é que o pai (processo) do zumbi pode recuperar o status de saída do zumbi e as estatísticas de uso de recursos. O pai sinaliza ao sistema operacional que ele não precisa mais do zumbi usando uma das chamadas do sistema wait ().
Quando um processo morre, todos os processos filhos se tornam filhos do processo número 1, que é o processo init. Init está `` sempre '' esperando que as crianças morram, para que elas não permaneçam como zumbis.
Se você tiver processos zumbis, significa que esses zumbis não foram esperados pelos pais (veja o PPID exibido por ps -l
). Você tem três opções: Corrija o processo pai (espere); matar os pais; ou viver com isso. Lembre-se de que viver com isso não é tão difícil, porque os zumbis ocupam pouco mais de uma linha extra na saída do ps.
Os zumbis podem ser identificados na saída do comando ps do Unix pela presença de um "Z" na coluna STAT. Os zumbis que existem por mais de um curto período de tempo geralmente indicam um erro no programa pai. Como em outros vazamentos, a presença de alguns zumbis não é preocupante por si só, mas pode indicar um problema que se tornaria sério sob cargas mais pesadas.
Para remover zumbis de um sistema, o sinal SIGCHLD pode ser enviado aos pais manualmente, usando o comando kill. Se o processo pai ainda se recusar a colher o zumbi, o próximo passo seria remover o processo pai. Quando um processo perde seu pai, o init se torna seu novo pai. O Init executa periodicamente a chamada do sistema de espera para colher quaisquer zumbis com o init como pai.
Também existem processos órfãos que são um processo de computador cujo processo pai foi finalizado ou finalizado.
Um processo pode ficar órfão durante a chamada remota quando o processo do cliente falha após fazer uma solicitação do servidor.
Órfãos desperdiçam recursos do servidor e podem potencialmente deixar um servidor com problemas (esta é a maior diferença de recursos entre zumbis e órfãos (exceto se você assistir a um filme sobre zumbis órfãos). No entanto, existem várias soluções para o problema do processo órfão:
O extermínio é a técnica mais usada; neste caso, o processo órfão é morto.
Reencarnação é uma técnica na qual as máquinas tentam periodicamente localizar os pais de quaisquer cálculos remotos; momento em que os processos órfãos são mortos.
A expiração é uma técnica em que cada processo recebe uma certa quantidade de tempo para concluir antes de ser morto. Se necessário, um processo pode "pedir" mais tempo para terminar antes que o tempo alocado expire.
Um processo também pode ficar órfão em execução na mesma máquina que seu processo pai. Em um sistema operacional semelhante ao UNIX, qualquer processo órfão será imediatamente adotado pelo processo especial do sistema "init". Esta operação é chamada re-parentalidade e ocorre automaticamente. Embora tecnicamente o processo tenha o processo "init" como pai, ele ainda é chamado de processo órfão, pois o processo que o criou originalmente não existe mais.
Mais informações:
http://wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process#ixzz1PCN9vojU
http://www.linuxsa.org.au/tips/zombies.html
http://www.brighthub.com/computing/linux/articles/79186.aspx
Como identificar e eliminar o processo de interrupção, quando o sistema trava e reage lentamente na entrada do usuário?
Matando um processo em execução em uma máquina Ubuntu remotamente a partir de uma máquina Windows que esteja na LAN