it.phhsnews.com


it.phhsnews.com / Che cos'è un "processo zombi" su Linux?

Che cos'è un "processo zombi" su Linux?


Se sei un utente Linux, potresti aver visto i processi di zombi svolazzare attorno all'elenco dei tuoi processi. Non puoi uccidere un processo di zombi perché è già morto - come uno zombi effettivo.

Gli zombi sono fondamentalmente i pezzi rimanenti dei processi morti che non sono stati ripuliti correttamente. Un programma che crea processi di zombi non è programmato correttamente - i programmi non dovrebbero lasciare che i processi di zombi si aggrappino.

Image Credit: Daniel Hollister su Flickr (Remixed)

Cos'è un processo di Zombie?

Per capire che cos'è un processo zombie e che cosa fa apparire i processi zombi, dovrai capire un po 'come funzionano i processi su Linux.

Quando un processo muore su Linux, non viene rimosso immediatamente dalla memoria - il suo processo il descrittore rimane in memoria (il descrittore di processo richiede solo una piccola quantità di memoria). Lo stato del processo diventa EXIT_ZOMBIE e al genitore del processo viene notificato che il suo processo figlio è morto con il segnale SIGCHLD. Si suppone che il processo padre esegua la chiamata di sistema wait () per leggere lo stato di uscita del processo inattivo e altre informazioni. Ciò consente al processo padre di ottenere informazioni dal processo non elaborato. Dopo che è stato chiamato wait (), il processo zombie viene completamente rimosso dalla memoria.

Normalmente ciò avviene molto rapidamente, quindi non vedrete i processi di zombi accumularsi sul vostro sistema. Tuttavia, se un processo genitore non è programmato correttamente e non chiama mai wait (), i suoi figli zombi rimarranno in memoria fino a quando non saranno ripuliti.

Utilità come GNOME System Monitor, inizio comando e il comando ps visualizza i processi zombi.

I pericoli dei processi zombi

I processi zombi non utilizzano risorse di sistema. (In realtà, ognuno utilizza una quantità molto piccola di memoria di sistema per memorizzare il descrittore di processo.) Tuttavia, ogni processo di zombie conserva il suo ID di processo (PID). I sistemi Linux hanno un numero finito di ID di processo - 32767 per impostazione predefinita su sistemi a 32 bit. Se gli zombi si stanno accumulando ad un ritmo molto veloce - per esempio, se un software server programmato in modo non corretto sta creando processi di zombi sotto carico - l'intero pool di PID disponibili verrà infine assegnato ai processi di zombie, impedendo l'avvio di altri processi.

Tuttavia, alcuni processi di zombi in giro non sono un problema - anche se indicano un bug con il loro processo genitore sul tuo sistema.

Eliminare i processi di Zombi

Non puoi uccidere i processi di zombi poiché puoi uccidere i normali processi con Segnale SIGKILL - i processi zombie sono già morti. Ricorda che non è necessario eliminare i processi di zombi a meno che tu non abbia una grande quantità sul tuo sistema - alcuni zombi sono innocui. Tuttavia, ci sono alcuni modi per liberarti dei processi di zombi.

Un modo è inviare il segnale SIGCHLD al processo genitore. Questo segnale indica al processo padre di eseguire la chiamata di sistema wait () e pulire i suoi figli zombi. Invia il segnale con il comando kill , sostituendo pid nel comando seguente con il PID del processo genitore:

kill -s SIGCHLD pid

Tuttavia, se il processo genitore non è 'programmato correttamente e sta ignorando i segnali SIGCHLD, questo non aiuterà. Dovrai uccidere o chiudere il processo genitore degli zombi. Quando termina il processo che ha creato gli zombi, init eredita i processi zombie e diventa il loro nuovo genitore. (init è il primo processo avviato su Linux all'avvio e viene assegnato al PID 1.) init esegue periodicamente la chiamata di sistema wait () per ripulire i suoi figli zombi, quindi init farà un breve lavoro degli zombi. Puoi riavviare il processo genitore dopo averlo chiuso.

Se un processo genitore continua a creare zombi, dovrebbe essere corretto in modo che invochi correttamente () i suoi figli zombi. Segnala un bug report se un programma sul tuo sistema continua a creare zombi.


È Possibile convertire una scheda wireless interna in un dongle?

È Possibile convertire una scheda wireless interna in un dongle?

Se si odia vedere sprecare buoni componenti elettronici, è probabile che si cerchi modi per incorporarli in altri dispositivi o farli servire come accessori di qualche tipo. Con questo in mente, il post di Q & A di SuperUser di oggi offre alcuni consigli utili a un lettore curioso. La sessione di domande e risposte di oggi ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte.

(how-to)

Come impedire al mouse di riattivare il PC Windows

Come impedire al mouse di riattivare il PC Windows

Se un lieve urto alla tua scrivania è sufficiente per riattivare il tuo PC, è probabile che il tuo mouse esegua il risveglio. Ecco come evitare che ciò accada. CORRELATO: Come impedire al computer di attivarsi accidentalmente Per impostazione predefinita, lo spostamento del mouse è uno dei motivi per cui il PC si sveglia dalla modalità di sospensione.

(how-to)