Zombie protsess. Kõik pole kuulnud sellest huvitavast, kuid hirmutavast sõnast, mis on seotud Linuxi operatsioonisüsteemiga. Personaalarvutis ei pruugi zombiprotsessid tavakasutajale ohtu kujutada, kuid Linuxi serverite osas tuleb need protsessid tuvastada ja need peatada.

Sellised protsessid võivad põhjustada probleeme teie süsteemi protsessitabeliga ja omakorda rikkuda teie masina nõuetekohast toimimist. Seetõttu käsitleme selles artiklis üksikasjalikult zombiprotsesse koos põhjaliku juhendiga zombiprotsesside leidmiseks ja tapmiseks Linuxi masinas.

Mis on zombiprotsessid?

Kuid enne kõike seda on oluline, et teaksite, mis zombiprotsessid tegelikult on. Need pole muud kui surnud ja kadunud protsessid, mis hõivavad ruumi süsteemiprotsesside tabelis. A protsessi juhtimise plokk või PCB on andmestruktuur, mis salvestab teie süsteemis töötavate üksikute protsessidega seotud üksikasjad.

Protsessitabel koosneb protsessi ID-st, lingist PCB-le ja muust protsessiga seotud kasulikust teabest. Zombie-protsessidel on oma protsesside ID-d ja mäluhalduse teave. Kuna Linuxi OS-il on piiratud arv protsessi ID-sid, ei saa teised protsessid PID-sid kasutada enne, kui zombiprotsess peatub.

instagram viewer

Kuigi üks või kaks zombiprotsessi ei põhjusta teie arvutis katkestusi ega jõudlusprobleeme, a suur hulk selliseid protsesse võib kahjustada teie süsteemi töövoogu, ujutades üle protsessitabeli ja ressursse.

Mis põhjustab Linuxis zombiprotsesse?

Zombiprotsessi põhjuste üksikasjalikuks mõistmiseks peate õppima, kuidas protsessid Linuxis algavad ja peatuvad. Linuxi operatsioonisüsteem jälgib kõiki arvutis töötavaid protsesse ja deemoneid. The protsessitabel on struktuuride loend, mis sisaldab kõiki teie arvutis praegu töötavaid protsesse.

Iga protsessitabeli protsessikirje koosneb linkist protsessi juhtimise plokk selle konkreetse protsessi jaoks. PCB salvestab selle konkreetse protsessiga seotud üksikasjad. Need üksikasjad hõlmavad järgmist:

  1. Protsessi olek: Protsessi hetkeseis
  2. Protsessi number: Protsessi tuvastamiseks kasutatav kordumatu number
  3. Programmiloendur: Sisaldab teavet järgmise juhise kohta
  4. Registrid: Kõigi protsessori poolt kasutatavate protsessorite registrite loend
  5. Ava faililoend: Protsessis kasutatud failid
  6. Teave protsessori ajastamise kohta: Sisaldab teavet, mis on seotud protsessori aja ja ressurssidega, mis on protsessile eraldatud
  7. Teave mäluhalduse kohta: Sisaldab üksikasju protsessi käigus kasutatava mälumahu kohta
  8. I / O teave: Protsessis kasutatud sisend- või väljundseadmete loend

Linux kasutab kõigi oma protsesside kirjeldamiseks järgmisi protsessiolekuid.

  • R: Jooksuprotsess
  • S: Magamisprotsess
  • D: Katkematu magamisprotsess
  • T: Lõpetatud protsess
  • Z: Zombie protsess

Alati, kui protsess täidab määratud ülesande, määratakse selle protsessi olekuks Zombie või Z. Igal protsessil on vanemprotsess, mis kutsub üles funktsioonide perekonna oota () mis ootab protsessi olekumuutust. Näiteks kui protsessi olek muutub alates Jooksmine kuni Zombie, oota () meetod käivitatakse.

The oota () meetod kustutab tavaliselt selle zombiprotsessiga seotud protsessijuhtimisploki ja seejärel eemaldab selle protsessi sisestuse protsessitabelist.

Kuid mõnikord ei kutsu vanem protsess programmi kehva arengu tõttu seda oota () funktsioon. Ja selle tulemusena ei kustuta süsteem zombiprotsessi PCB-d. Ka selle konkreetse protsessi protsessitabeli kirje jääb puutumata.

See annab zombiprotsessile lõpmatu eluea. Kuna süsteem ei saa protsessi tappa, ei kustutata protsessikirjet kunagi ja PID ei vabane kunagi.

Lisateave: Reageerimata programmide tapmise viisid Linuxis

Kuidas leida zombiprotsesse?

Esimene samm teie süsteemis olevate zombiprotsesside eemaldamiseks on analüüsida, milline protsess on Zombie protsessi olek. Kuigi te ei saa neid protsesse otse tappa, kuna süsteem on need juba mälust eemaldanud, võite tappa nendega seotud vanemprotsessi.

Esiteks peate kontrollima, kas teie süsteemi protsessitabelis on zombiprotsess. Saate seda hõlpsalt kasutada üles käsk. Lihtsalt avage terminal ja tippige:

üles

Näete selle väljundiga sarnast väljundit. Pange tähele terminaliakna ülaosas olevate zombiprotsesside arvu. Kui väljund on null, siis pole teil midagi muretseda.

Nende zombiprotsessidega seotud teavet saate torustiku abil loetleda käsk ps koos egrep. Egrep on Linuxi käsu grep laiendus, mis käsitleb kõiki mustreid laiendatud regeksistringina.

Seotud: Algajate juhend regulaarsete väljendite kohta Pythoni abil

Kõigi zombiprotsesside loetlemiseks tippige järgmine käsk:

ps aux | egrep "Z | kadunud"

Eelnimetatud käsk otsib ridu, mis sisaldavad kumbagi Z või kadunud käsu ps genereeritud väljundis. Väljund koosneb teie süsteemis töötavate zombiprotsesside loendist.

Zombie-protsesside tapmine kill-käsu abil

Nüüd, kui teate, millised zombiprotsessid teie süsteemiressursse praegu ära söövad, on aeg need protsessid tappa.

Kui zombiprotsesside tapmiseks on kõige lihtsam viis arvuti taaskäivitamine, pole see mõnikord teostatav valik, eriti kui haldate serverit.

Zombiprotsesside tapmiseks ilma serverit sulgemata märkige üles mis tahes zombiprotsessi protsessi ID. Eelmisest jaotisest näeme, et zombiprotsessi PID oli 18614. Seejärel kasutage seda PID-d vanemprotsessi ID leidmiseks.

ps -o ppid = -p 18614

Väljund:

18613

Kontrollige, kas vanemprotsessi ID on olemas ps käsk.

ps -e | grep 18613

Nüüd, kui oleme kinnitanud vanemaprotsessi olemasolu, on aeg see tappa. Läbi -SIGKILL lipuga tapma käsk järgmiselt:

sudo kill -SIGKILL 18613

Kui olete vanemaprotsessi tapnud, kustutab süsteem zombiprotsessi ja eemaldab selle protsessitabelist automaatselt.

Protsesside tõhus haldamine Linuxis

Iga süsteemiadministraator peab tähtsustama Linuxi masinas töötavaid jälgimisprotsesse. Kuigi zombiprotsessid pole teie süsteemile tingimata kahjulikud, võivad need arvukalt esinemisel põhjustada jõudlusega seotud probleeme.

Kui olete algaja Linuxi kasutaja ja teil pole aimugi, kuidas Linuxi operatsioonisüsteem protsesse haldab, on alustamiseks kõigepealt protsesside õppimine.

E-post
Mis on protsess Linuxis?

Protsessi ja töökohtade mõistmine on Linuxiga toimetuleku põhiaspekt. Siin on, mida peate teadma.

Loe edasi

Seotud teemad
  • Linux
  • Linux
  • Töötlemine
Autori kohta
Sügav Sharma (45 artiklit on avaldatud)

Deepesh on MUO Linuxi nooremtoimetaja. Ta on kirjutanud Internetis infosisu üle 3 aasta. Vabal ajal meeldib talle kirjutada, muusikat kuulata ja kitarri mängida.

Veel Deepesh Sharmalt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!

Veel üks samm !!!

Palun kinnitage oma e-posti aadress meilis meile, mille me just saatsime.

.