Zombie-prosessin lopettaminen Linux-ympäristöissä

Summary: Mikä on zombiprosessi, miten se löydetään ja miten se tapetaan tai lopetetaan.

Ez a cikk a következő(k)re vonatkozik: Ez a cikk nem vonatkozik a következő(k)re: Ez a cikk nem kapcsolódik egyetlen konkrét termékhez sem. Ez a cikk nem azonosítja az összes termékverziót.

Instructions

Mikä on zombie-prosessi:
Se on prosessi, joka päättyi, mutta kaikkea sitä ei poisteta välittömästi muistista, koska sen prosessikuvaaja pysyy muistissa.

Mikä pitäisi olla prosessin normaali käyttäytyminen:
Kun prosessi päättyy, prosessin tilaksi tulee EXIT_ZOMBIE ja prosessin vanhemmalle ilmoitetaan, että sen lapsiprosessi on kuollut SIGCHLD signaali.

Pääprosessin on sitten suoritettava wait() järjestelmäkutsu lukee kuolleen prosessin poistumistilan ja muita tietoja. Jälkeen wait() kutsutaan, zombie-prosessi poistetaan muistista. Tämä tapahtuu nopeasti, joten et näe zombie-prosessien kertymistä järjestelmääsi. Mutta tapauksissa, joissa näemme useita zombie-prosesseja kertyvän, tämä on tilanne, jossa ohjelmakoodi ei ole tehokas.

Kuinka löytää zombie-prosessit:
Komennon suorittaminen top
Tulokset ylimmästä komennosta

Komennon suorittaminen ps -ef | grep defunct
Lakkautetun komennon tulos

Kuinka lopettaa kertyvät zombiprosessit:
Suurimman osan ajasta zombie-prosesseilla on sama pääprosessitunnus.

Prosessi voidaan poistaa kahdella tavalla:
  • Lähetä SIGCHLD signaali vanhemmalle prosessille.
Tämä signaali käskee emoprosessia suorittamaan wait() System Call ja siivoa sen zombilapset:
kill -s SIGCHLD <PPID>
Esimerkki:
kill -s SIGCHLD 2201
  • Tapa zombie-vanhemman prosessi
kill -9 <PPID>
Esimerkki:
kill -9 2201

Érintett termékek

Dell OpenManage Enterprise, NetWorker Series
Termék tulajdonságai
Article Number: 000019108
Article Type: How To
Utoljára módosítva: 12 ápr. 2025
Version:  4
Választ kaphat kérdéseire más Dell-felhasználóktól
Támogatási szolgáltatások
Ellenőrizze, hogy a készüléke rendelkezik-e támogatási szolgáltatással.