Zombies são processos DEAD. Eles não podem ser 'kill' (você não pode matar o DEAD). Todos os processos eventualmente morrem e, quando o fazem, tornam-se zumbis. Eles quase não consomem recursos, o que é esperado porque estão mortos! A razão para os zumbis é que o pai do zumbi (processo) 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 é interrompido, seus processos filhos tornam-se 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ê tem processos zumbis, isso significa que os zumbis não foram esperados pelos pais (veja PPID exibido por ps -l
). Você tem três opções: Corrigir o processo pai (aguarde); mate o pai; ou viver com isso. Lembre-se 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 Unix ps pela presença de um "Z" na coluna STAT. Zumbis que existem por mais de um curto período de tempo normalmente indicam um erro no programa pai. Tal como acontece com outros vazamentos, a presença de alguns zumbis não é preocupante em si, mas pode indicar um problema que cresceria sério sob cargas mais pesadas.
Para remover zumbis de um sistema, o sinal SIGCHLD pode ser enviado ao pai 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 obter zumbis com o init como pai.
Existem também processos órfãos que são processos 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.
Os ó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ê vir algum filme zumbi órfão). No entanto, existem várias soluções para o problema do processo órfão:
-
A exterminação é 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 qualquer computação remota; em que ponto processos órfãos são mortos.
-
A expiração é uma técnica em que cada processo é distribuído por um determinado período de tempo para terminar 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 ser ó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". Essa operação é chamada de re-parenting e ocorre automaticamente. Embora tecnicamente o processo tenha o processo "init" como pai, ele ainda é chamado de processo órfão, pois o processo que originalmente o criou não existe mais.
Mais informações:
link
link