Jak ukončit zombie proces?
sobes.tech AI
Odpověď od AI
Proces zombie je proces, který dokončil svůj běh, ale stále zabírá místo v tabulce procesů systému, protože jeho rodičovský proces ještě nečetl návratový kód pomocí systémového volání wait().
Pro ukončení zombie procesu je nejprve nutné ukončit jeho rodičovský proces. Když rodičovský proces skončí, zombie proces bude adoptován procesem init (nebo jeho moderním ekvivalentem, například systemd), který provede potřebné systémové volání wait() a odstraní zombie z tabulky procesů.
Kroky k ukončení zombie procesu:
-
Určete PPID (identifikátor rodičovského procesu) zombie procesu.
# Vyhledání zombie procesů a jejich PPID ps aux | awk '{ print $8, $2, $4 }' | grep ZVýstup bude přibližně takový:
Z 1234 5678, kde1234je PID zombie procesu a5678je PPID rodičovského procesu. -
Ukončete rodičovský proces. Použijte PID rodičovského procesu získaný v předchozím kroku.
# Vynucené ukončení rodičovského procesu kill -9 <PPID_rodicovského_procesu>Použijte signál
SIGKILL(-9) k zaručení ukončení rodičovského procesu, pokud běžný signálSIGTERMnefunguje.
Po ukončení rodičovského procesu systém automaticky odstraní zombie proces. Ve vzácných případech, pokud je problém se zombie procesy způsoben hlubokým problémem jádra operačního systému, může být nutné restartovat server.