Dnes se dozvíme o zombie procesech. Zejména vás provedeme hledáním a zabíjením zombie procesů ve vašich operačních systémech Linux / Unix.
Co je proces zombie?
V operačních systémech Linux / Unix je defunc proces (známý jako zombie proces) systémový proces, který dokončil své provedení, ale stále se zobrazuje v tabulce systémových procesů. Jinými slovy, je to prázdný proces, který neprovádí žádnou úlohu, ale stále existuje a má ID procesu.
Pokud existuje zombie proces, kolem je rodičovský proces. A stejně jako ve filmech, zombie nereagují na běžné způsoby zabíjení. Na Unixu/Linuxu je to stejné, nemůžete zabít zombie, ale můžete zabít rodičovský proces, což způsobí, že proces zombie okamžitě zmizí.
Zombie procesy lze nalézt téměř na jakémkoli operačním systému Unix/Linux, včetně serverů cPanel.
Jak mohu vypsat zombie procesy v mém systému?
Zombie procesy lze nalézt pomocí příkazu ps a propojením příkazu grep s řetězcem „defunc“ nebo „Z“ ve sloupci „STAT“.
Příklad:hledání zombie procesů pomocí ps a grep.
ps aux |grep "defunct"
nebo
ps aux | grep 'Z'
Příklad výstupu:
[[email protected]:~]ps aux | grep 'Z' USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 28115 0.0 0.0 103320 864 pts/0 S+ 09:26 0:00 grep Z johndoe 3572 0.0 0.0 0 0 ?? Z 20:41 0:00 some.command
Zabijte procesy zombie
Nyní, abyste zabili proces zombie, stačí zabít proces 3572 a měl by být pryč. Použijme příkaz pstree k financování nadřazeného procesu
pstree -p -s 3572
Výstup by měl být něco jako:
init(1)---cnid_metad(1201)---cnid_dbd(3572)
To ukáže pid rodičovského procesu zombie. Nyní musíte ukončit nadřazený proces.
[[email protected]]# kill -9 3572
Vše hotovo, nyní víte, jak najít a zabít zombie procesy v operačních systémech Linux / Unix. Znáte jiné způsoby, jak najít a zabít zombie procesy v Linuxu / Unixu? Podělte se s námi o své znalosti.
Další čtení:
- Koncept procesu zombie
- Zombie proces na RedHat Mailing List