GNU/Linux >> Znalost Linux >  >> Linux

Jak zabít zombie proces

Zombie je již mrtvá, takže ji nemůžete zabít. Aby bylo možné zombie uklidit, musí na ni čekat její rodič, takže zabití rodiče by mělo fungovat k odstranění zombie. (Po smrti rodiče zombie zdědí pid 1, který na ni počká a vymaže její záznam v tabulce procesů.) Pokud váš démon plodí děti, ze kterých se stávají zombie, máte chybu. Váš démon by si měl všimnout, když jeho děti zemřou, a wait na nich určit jejich výstupní status.

Příklad toho, jak můžete poslat signál každému procesu, který je rodičem zombie (všimněte si, že je to extrémně hrubé a mohlo by to zabít procesy, které nemáte v úmyslu. Nedoporučuji používat tento druh perlíku):

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

Zkusil jsem:

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}

to bude fungovat :)


Nalezeno na adrese http://www.linuxquestions.org/questions/suse-novell-60/howto-kill-defunct-processes-574612/

2) Zde je skvělý tip od jiného uživatele (Thxs Bill Dandreta):Někdy

kill -9 <pid>

nezabije proces. Spustit

ps -xal

4. pole je rodičovský proces, zabijte všechny rodiče zombie a zombie zemře!

Příklad

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 jsou zombie -

kill -9 18581 18582 18583

nemá žádný účinek.

kill -9 31706

odstraní zombie.


Proces zombie můžete vyčistit tím, že zabijete jeho nadřazený proces pomocí následujícího příkazu:

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

Linux
  1. Jak zabít proces zombie na Linuxu

  2. Procesní potomci?

  3. Jak zabít proces v Linuxu pomocí příkazu?

  1. Jak najít a zabít zombie proces v Linuxu

  2. Co jsou zombie procesy a jak najít a zabít zombie procesy?

  3. Jak pozastavit/obnovit proces v Linuxu

  1. Jak zabít proces, jehož rodič je init?

  2. Linux:Najděte a zabijte zombie procesy

  3. Jak nastavím pracovní adresář nadřazeného procesu?