GNU/Linux >> Linux Esercitazione >  >> Linux

Perché non posso terminare questo processo su Linux?

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

Linux
  1. Come trovare e uccidere il processo Zombie in Linux

  2. Come uccidere un processo su Linux usando il comando?

  3. kill Esempi di comandi in Linux

  4. Come uccidere il processo di zombi

  5. Linux perché non riesco a reindirizzare find result a rm?

Come uccidere un processo in Linux? Comandi per terminare

Come uccidere un processo in Linux

Kill Command in Linux

Come uccidere i processi Zombie in Linux

5 modi rapidi per uccidere un processo in Linux

Come KILL un processo su Linux