Una volta che il processo Linux (o UNIX) entra nello stato 'Z' come indicato dal comando:
ps aux | grep Z
Questo processo è essenzialmente morto e non riceverà alcuna ulteriore allocazione di clock della CPU dallo scheduler del kernel, TRANNE per passare un ultimo respiro di morte di un valore di codice di uscita al genitore (se il genitore è ancora in giro).
È sospeso perché ha un codice di uscita che è in attesa di un processo genitore da raccogliere. Spesso, anche il processo padre è andato via, quindi un tale processo di zombi può essere ucciso solo per liberare risorse aggiuntive.
Succede perché il processo figlio muore e il genitore non reagisce correttamente a questo evento. Convenzionalmente, il genitore deve chiamare waitpid o attendere la funzione per ottenere lo stato di uscita del bambino. In questo momento scompare zombi. Tuttavia, alcuni programmi dimenticano di chiamare waitpid, o lo fanno qualche tempo dopo.
Tale processo può essere ucciso.
(Fonte: link )