Ako ukončiť zombie proces?
sobes.tech AI
Odpoveď od AI
Proces zombie je proces, ktorý ukončil svoju činnosť, ale naďalej zaberá miesto v tabuľke procesov systému, pretože jeho rodičovský proces ešte neprečítal návratový kód pomocou systémového volania wait().
Na ukončenie zombie procesu je najskôr potrebné ukončiť jeho rodičovský proces. Keď rodičovský proces skončí, zombie proces bude adoptovaný procesom init (alebo jeho moderným ekvivalentom, ako je systemd), ktorý vykoná potrebné systémové volanie wait() a odstráni zombie z tabuľky procesov.
Kroky na ukončenie zombie procesu:
-
Určte PPID (identifikátor rodičovského procesu) zombie procesu.
# Vyhľadanie zombie procesov a ich PPID ps aux | awk '{ print $8, $2, $4 }' | grep ZVýstup bude približne takýto:
Z 1234 5678, kde1234je PID zombie procesu a5678je PPID rodičovského procesu. -
Ukončite rodičovský proces. Použite PID rodičovského procesu získaný v predchádzajúcom kroku.
# Vynútené ukončenie rodičovského procesu kill -9 <PPID_rodičovského_procesu>Použite signál
SIGKILL(-9) na garantované ukončenie rodičovského procesu, ak bežný signálSIGTERMnefunguje.
Po ukončení rodičovského procesu systém automaticky odstráni zombie. V zriedkavých prípadoch, ak je problém so zombie procesmi spôsobený hlbokým problémom jadra operačného systému, môže byť potrebné reštartovať server.