GNU/Linux >> Linux Esercitazione >  >> Linux

Come uccidere il processo di zombi

Uno zombi è già morto, quindi non puoi ucciderlo. Per ripulire uno zombi, deve essere servito dal suo genitore, quindi uccidere il genitore dovrebbe funzionare per eliminare lo zombi. (Dopo la morte del genitore, lo zombi verrà ereditato dal pid 1, che lo aspetterà e cancellerà la sua voce nella tabella dei processi.) Se il tuo demone sta generando bambini che diventano zombi, hai un bug. Il tuo demone dovrebbe notare quando i suoi figli muoiono e wait su di loro per determinare il loro stato di uscita.

Un esempio di come potresti inviare un segnale a ogni processo che è il genitore di uno zombi (nota che questo è estremamente rozzo e potrebbe uccidere processi che non intendi. Non consiglio di usare questo tipo di mazza):

# Don't do this.  Incredibly risky sledge hammer!
kill $(ps -A -ostat,ppid | awk '/[zZ]/ && !a[$2]++ {print $2}')

Ho provato:

ps aux | grep -w Z   # returns the zombies pid
ps o ppid {returned pid from previous command}   # returns the parent
kill -1 {the parent id from previous command}

funzionerà :)


Trovato su http://www.linuxquestions.org/questions/suse-novell-60/howto-kill-defunct-processes-574612/

2) Ecco un ottimo suggerimento da un altro utente (Thxs Bill Dandreta):A volte

kill -9 <pid>

non ucciderà un processo. Esegui

ps -xal

il 4° campo è il processo genitore, uccidi tutti i genitori di uno zombi e lo zombi muore!

Esempio

4 0 18581 31706 17 0 2664 1236 wait S ? 0:00 sh -c /usr/bin/gcc -fomit-frame-pointer -O -mfpmat
4 0 18582 18581 17 0 2064 828 wait S ? 0:00 /usr/i686-pc-linux-gnu/gcc-bin/3.3.6/gcc -fomit-fr
4 0 18583 18582 21 0 6684 3100 - R ? 0:00 /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/cc1 -quie

18581 , 18582 , 18583 sono zombie -

kill -9 18581 18582 18583

non ha alcun effetto.

kill -9 31706

rimuove gli zombi.


Puoi ripulire un processo zombie uccidendo il suo processo padre con il seguente comando:

kill -HUP $(ps -A -ostat,ppid | awk '{/[zZ]/{ print $2 }')

Linux
  1. Come uccidere un processo zombie su Linux

  2. Come trovare e uccidere il processo Zombie in Linux

  3. Processo discendenti?

  4. Come mettere in pausa/riprendere un processo in Linux

  5. Come terminare un processo <defunct> con il genitore 1

Come uccidere i processi Zombie in Linux

Come trovare e uccidere i processi zombi in CentOS 8

Come uccidere i processi zombie in Ubuntu 20.04 LTS

Come eliminare l'esecuzione del processo Linux su una porta particolare

Come KILL un processo su Linux

Come uccidere i processi zombi in Ubuntu