Per rispondere alla domanda numero 1:
Quando un processo genera processi figlio, ognuno dei figli ha il proprio PID. Il PPID di ogni figlio (id del processo genitore) è il PID del loro processo genitore. Se il padre muore, i processi figlio vengono resi orfani. I processi orfani vengono prelevati automaticamente dal processo init di sistema che ha un PID di 1.
Problema
Probabilmente il tuo script sta creando zombi a causa del tuo kill -9
comandi; come suggerito anche dalla risposta di jjlin non è mai una buona pratica interrompere bruscamente un processo senza essere costretti a farlo.
Da man bash
possiamo leggere:
I processi contrassegnati con
sono processi morti (i cosiddetti "zombie ") che rimangono perché il genitore non li ha distrutti correttamente .Questi processi verranno distrutti da init(8) se il processo padre esce.
Risposta n. 1: Il processo init ha il PID 1 e per questo Linux assegna loro il genitore con PID 1 (perché li assegna a init ).
Risposta n. 2: Non possono essere uccisi semplicemente perché sono semplicemente morti ... se il genitore ha init
probabilmente è sufficiente aspettare un po' di tempo.
Per rimuovere gli zombi da un sistema, il segnale SIGCHLD può essere inviato manualmente al genitore, utilizzando il comando kill. Se il processo genitore si rifiuta ancora di raccogliere lo zombi, il passo successivo sarebbe quello di rimuovere il processo genitore. Quando un processo perde il suo genitore, init diventa il suo nuovo genitore. Init esegue periodicamente la chiamata di sistema wait per mietere eventuali zombie con init come genitore. [1]
Nel caso in cui un giorno o l'altro sorga questa idea:a #kill -9 init
processo con privilegio di root è il software equivalente per scollegare fisicamente il computer dalla rete elettrica. [:-)]
Tuttavia, i processi zombie può essere identificato nell'output di ps
comando dalla presenza di una "Z" in STAT colonna. Puoi utilizzare la riga seguente per identificarli facilmente
ps -aux | grep Z
Alcuni riferimenti su Linux zombies world :
- C'è un modo per terminare un processo zombie senza riavviare?
- Cosa sono i processi zombie
- Come uccidere il processo di zombi
- [1] Da molte fonti in rete