linux user group brescia

immagine del castello

Archivio della mailing list

Il famoso morto

Gabriele Villi gvilli a iol.it
Mar 12 Nov 2002 14:33:24 UTC
Vernia Damiano wrote:
> 	Ciao, qualche tempo fa ho mandato una mail circa un processo
> "<defunct>". Ora ho scoperto che il suo PID e' il piu' basso escluso
> quello del window manager (BlackBox). Subito dopo il login io faccio
> partire un xterm. Bene, questo xerm ha un PID piu' alto, quindi non posso
> dedurre altro che il processo "<defunct>" sia figlio di qualcosa prima di
> un programma da me "esplicitamente" avviato. Che posso fare?

Dunque, secondo me il processo non viene ereditato da init perche' il 
padre e' ancora vivo.

In pratica succede questo

1) parte il padre P
2) che lancia il figlio F
3) il figlio F muore
4) ma il padre e' vivo e non gli fa il funerale (i.e. non legge il 
valore di ritorno)

a questo punto F e' defunct e non puoi ammazzarlo con kill perche' e' 
gia' morto. Non viene ereditato da init perche' P non e' morto e quindi 
F non e' orfano.

Per simulare la cosa,

1) apri X e lancia un terminale
2) digita sh (cioe' lancia una shell "innestata")
3) dalla nuova shell lancia xterm & (OCIO che devi mandarlo in background)
4) digita suspend nella shell del punto 2 (questo sospende la shell 
lanciata al punto 2 e ritorna alla shell piu' esterna, quella del punto 
1 per intenderci)
5) chiudi xterm

a questo punto xterm e' defunct e non riesci ad ammazzarlo. Hai 2 
soluzioni anzi 3:

a) far riprendere l'esecuzione alla shell al punto 2
b) ammazzare la shell del punto 2
c) fregartene altamente dei morti

Venendo al tuo caso, devi capire chi e' il padre di 'true' defunct e poi 
decidere quale strategia delle precedenti tre adottare


Per capire chi e' il padre del processo incriminato

ps auxf

ciao
gv





Maggiori informazioni sulla lista Lug