Kuidas lõpetada zombie-protsess?
sobes.tech AI
Vastus AI-lt
Zombi-protsess on protsess, mis on lõpetanud oma täitmise, kuid jätkab süsteemi protsesside tabelis ruumi hõivamist, kuna tema vanemprotsess pole veel tagasiväärtuse koodi lugenud süsteemikutsumise wait() kaudu.
Zombi-protsessi lõpetamiseks tuleb esmalt lõpetada tema vanemprotsess. Kui vanemprotsess lõpetab, võtab zombi-protsessi üle init-protsess (või selle kaasaegne ekvivalent, näiteks systemd), kes teostab vajaliku wait() süsteemikutsumise ja eemaldab zombi protsesside tabelist.
Zombi-protsessi lõpetamise sammud:
-
Määrake zombi-protsessi PPID (vanemprotsessi identifikaator).
# Otsige zombi-protsesse ja nende PPID ps aux | awk '{ print $8, $2, $4 }' | grep ZVäljund on umbes selline:
Z 1234 5678, kus1234on zombi-protsessi PID ja5678on selle vanemprotsessi PPID. -
Lõpetage vanemprotsess. Kasutage eelnevas sammus saadud PID-d.
# Survestage vanemprotsess lõpetama kill -9 <PPID_vanemprotsess>Kasutage signaali
SIGKILL(-9), et garanteerida vanemprotsessi lõpetamine, kui tavalineSIGTERMsignaal ei tööta.
Pärast vanemprotsessi lõpetamist eemaldab süsteem automaatselt zombi-protsessi. Harvadel juhtudel, kui zombi-protsesside probleem on põhjustatud sügavast kerneliprobleemist, võib olla vajalik serveri taaskäivitamine.