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

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

Este artículo se aplica a Este artículo no se aplica a Este artículo no está vinculado a ningún producto específico. No se identifican todas las versiones del producto en este artículo.

Instrucciones

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

Productos afectados

Dell OpenManage Enterprise, NetWorker Series
Propiedades del artículo
Número del artículo: 000019108
Tipo de artículo: How To
Última modificación: 12 abr 2025
Versión:  4
Encuentre respuestas a sus preguntas de otros usuarios de Dell
Servicios de soporte
Compruebe si el dispositivo está cubierto por los servicios de soporte.