| |

Kaip panaikinti zombie process?

Zombių būna ne vien Holivudo filmuose, linukse jie taip pat kartais apsigyvena. Kitaip nei filmuose,  linuxe zombiai (procesai), nėra kenksmingi ir nėra užkrečiami (angl. zombie process).

Kaip aptikti zombį procesą?

Tam naudojame:

# top

arba

# ps aux | awk '{ print $8 " " $2 }' | grep -w Z

išveda informaciją:

Z 4104
Z 5320
Z 2945
Z 17607

arba

# ps aux | awk '{ print $8 " " $2 " " $11}' | grep -w Z

išveda:

Tikriausiai apie jį norėsite sužinoti daugiau informacijos, koks procesas nenori mirti ir iš kur jis atsirado? Informaciją apie zombį parodys ši komanda:

$ ps -el | grep Z
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 Z 0 17607 1671 0 80 0 - 0 ? ? 00:00:00 dhcpcd <l;defunct<

arba

ps ef

Pas mane niekaip nemiršta dhcpcd procesas, kurio ID 17607. Kad išsiaiškinti zombio gimdytoją, pirmiausia žiūriu į PPID (Parent Process ID) ir tada ieškau procesu su šiuo ID:

$ ps -el | grep 1671

Dabar panaikinsime zombinį procesą. Pvz. zombis procesas kurio PID 4104, įvykdome komandą:

# kill -9 4104

Atkreipiame dėmesį, kad ne visada gali pavykti panakinti zombį procesą, gali padėti susijusių servisų restartavimas.

Kaip automatizuotai panaikinti zombinius procesus

Tai padės atlikti ši komandinė eilutė:

kill -HUP `ps -A -ostat,ppid | grep -e '^[Zz]' | awk '{print $2}'`

Arba killzombi sh skriptas (skripto informacijos šaltinis).

Pabaigai

Kad nužudyti zombį linukse, žudyti reikia ne patį zombį bet jo gimdytoją! Bet ne viskas taip paprasta, jei zombio gimdytojas yra init procesas (PID numeris 1), tai nužudę jį galime užmušti visą linuksą.

Tai ką daryti? Ogi nieko. Linuksiniai zombiai smegenų nevalgo ─ nenaudoja atminties ir nerija procesoriaus resursų. Viskas ką jie daro, tai užima papildomą eilutę procesų sąraše, nieko daugiau.

Kviečiu įvertinti įrašą!
[Viso: 0 Vidurkis: 0]

Similar Posts

Parašykite komentarą

El. pašto adresas nebus skelbiamas.

− 7 = 3