"C'è 1 processo di zombi"


33

Questo messaggio appare quando accedo al mio computer ...

There is 1 zombie process.
  • Cosa mi sta dicendo?
  • È qualcosa di cui dovrei preoccuparmi?
  • Se sì, allora cosa dovrei fare e come?

20
Hai un fucile a doppia canna nelle vicinanze?
EEAA,

Risposte:


28

Non c'è nulla di cui preoccuparsi:

Zombie

Sui sistemi operativi Unix, un processo zombie o un processo defunto è un processo che ha completato l'esecuzione ma ha ancora una voce nella tabella dei processi, consentendo al processo che l'ha avviato di leggere il suo stato di uscita. Nella metafora colorata del termine, il processo figlio è morto ma non è stato ancora raccolto.

Al termine di un processo, tutta la memoria e le risorse ad esso associate vengono deallocate in modo da poter essere utilizzate da altri processi. Tuttavia, la voce del processo nella tabella del processo rimane. Al genitore viene inviato un segnale SIGCHLD che indica che un bambino è morto; il gestore di questo segnale eseguirà in genere la chiamata di sistema di attesa, che legge lo stato di uscita e rimuove lo zombi. L'ID processo dello zombie e la voce nella tabella del processo possono quindi essere riutilizzati. Tuttavia, se un genitore ignora il SIGCHLD, lo zombi rimarrà nella tabella dei processi. In alcune situazioni ciò può essere desiderabile, ad esempio se il genitore crea un altro processo figlio garantisce che non verrà assegnato lo stesso ID processo.

Fonte: http://wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process


Grazie Marc buona descrizione; ora come lo troverei, capire se tenerlo e, in caso contrario, rimuoverlo (e il messaggio).
John Mee,

Di solito si spengono da soli, se questo ti irrita davvero, potresti riavviare o trovare il PID del processo genitore e ucciderlo, ma dipende da cosa sta lasciando indietro lo zombi, che potrebbe essere problematico uccidere quel particolare processo.
Marc-Andre R.,

2
Non dimenticare di accettare la mia risposta se questa è la vera risposta alla tua domanda;) grazie!
Marc-Andre R.

10
Spiacenti, hai risposto solo alla prima parte della sua domanda. Non è ancora chiaro se ci si debba preoccupare di ciò e cosa fare al riguardo.

0

Come spiegato nella risposta accettata, hai un processo che ha completato l'esecuzione ma è ancora nella tabella dei processi: https://serverfault.com/a/390216/48449

Questo non dovrebbe causare danni se si tratta di un solo processo, ma comunque non dovrebbe accadere. Se ce ne sono troppi e non si riavvia o riavvia il processo padre che li causa, è possibile raggiungere il numero massimo di processi consentiti e causare seri problemi.

Per scoprire se la preoccupazione è appropriata e a quale altro processo appartiene lo zombi, questo funziona per me:

ps -elf --forest | grep -C5 '<[d]efunct>'

Aumentare il numero di linee di contesto, se necessario, per scoprire il processo padre, idealmente correggere quel processo per farlo "raccogliere" i suoi sottoprocessi conclusi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.