Grazie per la spiegazione, dunque l'approccio che ho adottato non è corretto.Cerco di valutare un'altra soluzione. Grazie ancora Claudio Il giorno mer, 06-04-2005 alle 21:33 +0200, Matteo Ianeselli ha scritto: > Il giorno mer, 06-04-2005 alle 15:39 +0200, Claudio ha scritto: > > > > Il problema è che quando avvio un processo in tale modo mi ritrovo si > > ad avere il pid... ma il processo risulta in stato defunct. > > > > esempio: pid = os.spawnl(os.P_NOWAIT, '/usr/sbin/smbd',' ') > > ottendo il pid 3694 > > > > ma la situazione dei processi è la seguente... > > > > 3694 pts/2 00:00:00 smbd <defunct> > > 3695 ? 00:00:00 smbd > > 3696 ? 00:00:00 smbd > > > > Sicuramente mi sfugge qualcosa... avete qualche suggerimento? > > > Molto in breve: perché smbd è un demone, il processo che tu avvii si > forka a sua volta e poi termina subito, tu ricevi SIGCHLD ma non fai > wait(2) per cui ti ritrovi con uno zombie (che ti resta finché il padre > non termina a sua volta, o finché non fa wait(2) di suo). > > > > Meno in breve: un demone, per essere veramente tale, deve: > > 1) chiudere tutti i file descriptor aperti che eredita (quantomeno > stdin, stdout e stderr) > > 2) cambiare la sua directory corrente in '/' (non indispensabile, ma > è buona educazione, altrimenti poi non si riesce più a smontare > il volume da cui era stato avviato) > > 3) entrare a far parte di un nuovo process group e staccarsi dal > terminale controllante. > > Per fare la (3) correttamente, il processo deve necessariamente > fork(2)are: poi il figlio va avanti (finalmente come demone), mentre il > padre termina. > > Dopodiché è noto che quando un processo termina, di esso rimane il solo > exit code, che il padre (il tuo script Python) deve andare a recuperare > (via wait(2) o varianti). E finchè il padre non lo recupera, il figlio > rimane zombie (i.e. rimane elencato nella lista dei processi, ma di esso > rimane il solo exit code). Quando il padre termina, il figlio zombie > viene adottato da init (pid 1), che di quando in quando fa una wait(2) > che permette allo zombie di andare verso pascoli più verdi. > > > > > > > > > > Grazie in anticipo > -- > | \ \ | ___|_ |_ | ianezz a casa sua... :-) > | _ \ | \ | _| / / Verba volant, scripta > _|_/ _\_| _|____|___|___| manent, data corrupted > > -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx