← Back to team overview

sslug-teknik team mailing list archive

Re: Sv: Hjælp mig af med en Zombie

 

On Sun, Sep 24 2000, Mads Bondo Dydensborg wrote:
> > Hvad gør man på et system hvor serveren absolut ikke må lukkes ?
> 
> Kører noget andet end Linux. Linux er ikke god, hvis man har processer der
> kommer ud for noget i den her stil:
> 
> a) Åbner et device (eller en fil på et device, eller osv, altså tilgår
>    et device. Stort set alle programmer gør dette).
> b) Poster en skrivning eller en læsning til dette device (igen, stort set
>    alle processer gør dette).
> c) Kernen registrerer og allokerer ressourcer (midlertidigt) til
>    b). (Igen, normalt)
> d) Hardwaren fejler uventet.
> 
> d) er det kritiske punkt. Der er masser af situationer hvor dette kan ske,
> f.eks. i forbindelse med IDE og SCSI diske. Dette håndterer Linux dårligt,
> specielt er der _ingen_ måde, hvorpå man kan overtale kernen til at
> frigive de ressourcer den allokerede i c). Da disse er registreret som
> tilhørende processen, kan man ikke slå processen ihjel.

Du blander zombier sammen med processer som er stuck i down
(uninterruptibly) et eller andet sted. Sidstnævnte tager ikke imod
signaler og det er derfor den ikke kan kill'es. Ovenstående beskrivelse er
for processer med status D, ikke zombier.

En zombie process er simpelthen bare et child som er exitet, hvor
dens parent endnu ikke har samlet dens exit status.

> typedef struct{
>   int a;
>   int b;
> } ged_t; 
> 
> int init_module() {
>   ged_t * ged = NULL;
>   ged.a = 42; /* seg fault */
>   return 0;   /* Bliver aldrig kørt */
> }

Eller bare init_module() { BUG(); }

Det er dog noget helt andet -- insmod vil blive dræbt, det eneste problem
er et stk uninitialised modul.

> Der er vist iøvrigt også en enkelt eller to situationer hvor man kan få en
> ukillelig zombie med rent software, men jeg har glemt hvad det er.

En zombie er jo netop en allerede død process, så det giver ingen mening
at snakke om at kille den.

-- 
* Jens Axboe <axboe@xxxxxxx>
* SuSE Labs


Follow ups

References