Avslutte en zombieprosess i Linux-miljøer

Summary: Hva er en zombieprosess, hvordan finne den, og hvordan drepe eller avslutte den.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

Hva er en zombieprosess:
Det er en prosess som avsluttet, men ikke alt blir umiddelbart fjernet fra minnet ettersom prosessbeskrivelsen forblir i minnet.

Hva skal være den normale oppførselen til en prosess:
Når en prosess avsluttes, blir prosessstatusen EXIT_ZOMBIE og prosessens foreldre blir varslet om at barneprosessen er død med SIGCHLD signal.

Den overordnede prosessen skal da kjøre wait() For systemkallet for å lese den døde prosessens avslutningsstatus og annen informasjon. Etter wait() kalles, zombieprosessen fjernes fra minnet. Dette skjer raskt, slik at du ikke ser zombieprosesser som samler seg på systemet ditt. Men i tilfeller der vi ser flere zombieprosesser samle seg, er dette en situasjon der programkoden ikke er effektiv.

Hvordan finne en Zombie prosesser:
Kjører kommandoen top
resultater fra øverste kommando

Kjører kommandoen ps -ef | grep defunct
Resultat av nedlagt kommando

Hvordan avslutte akkumulerende zombieprosesser:
Mesteparten av tiden har zombieprosessene samme foreldreprosess-ID.

Det er to metoder for å fjerne prosessen:
  • Send SIGCHLD signal til foreldreprosessen.
Dette signalet forteller den overordnede prosessen å kjøre wait() System ringe og rydde opp sine zombie barn:
kill -s SIGCHLD <PPID>
Eksempel:
kill -s SIGCHLD 2201
  • Drep zombieforeldreprosessen
kill -9 <PPID>
Eksempel:
kill -9 2201

Affected Products

Dell OpenManage Enterprise, NetWorker Series
Article Properties
Article Number: 000019108
Article Type: How To
Last Modified: 12 Apr 2025
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.