Sobes.tech
Middle

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:

  1. Määrake zombi-protsessi PPID (vanemprotsessi identifikaator).

    # Otsige zombi-protsesse ja nende PPID
    ps aux | awk '{ print $8, $2, $4 }' | grep Z
    

    Väljund on umbes selline: Z 1234 5678, kus 1234 on zombi-protsessi PID ja 5678 on selle vanemprotsessi PPID.

  2. 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 tavaline SIGTERM signaal 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.