GNU/Linux >> Linux Esercitazione >  >> Linux

Processi Zombie vs Defunti?

Entrambi Zombie e defunct sono uguali. ZOMBIE è quello del state of the process mentre non c'è defunct state, puoi vederlo dal codice sorgente del tuo kernel.

enum proc_state {
    UNUSED,   /*** processes in initial state **/
    EMBRYO, 
    SLEEPING,
    RUNNABLE, 
    RUNNING, 
    ZOMBIE   /** processes in final state **/
};

Stato di zombi significa dove è uscito ma non è stato ancora ripulito .

puoi aprire la pagina man di proc(1) e vedi questo /proc/[pid]/stat Informazioni sullo stato del processo. Questo è usato da ps(1) .


Per Linux i processi "defunti" e "zombie" sono gli stessi.

Da man ps :

Processi contrassegnati <defunct> sono processi morti (i cosiddetti "zombi") che rimangono perché il loro genitore non li ha distrutti correttamente. Questi processi verranno distrutti da init(8) se il processo padre esce.

PROCESS STATE CODES
    Here are the different values that the s, stat and state output specifiers (header "STAT" or "S") will display to describe the state of a process:
    D    uninterruptible sleep (usually IO)
    R    running or runnable (on run queue)
    S    interruptible sleep (waiting for an event to complete)
    T    stopped by job control signal
    t    stopped by debugger during the tracing
    W    paging (not valid since the 2.6.xx kernel)
    X    dead (should never be seen)
    Z    defunct ("zombie") process, terminated but not reaped by its parent

Come disse Achal defunto fu aggiunto da ps. A rigor di termini, non sono la stessa cosa.

Ad esempio, solo tid 10941 era uno zombi nella tabella seguente. Gli altri thread erano in stat D anziché Z.

$ grep prometheus foo/bar/sos_commands/process/ps_-elfL
4 Z root      10941  10920  10941  0    6  80   0 -      0 exit   Mar14 ?  00:11:41 [prometheus] <defunct>
1 D root      10941  10920  11010  0    6  80   0 - 621811 wait_o Mar14 ?  00:11:08 [prometheus] <defunct>
1 D root      10941  10920  11025  0    6  80   0 - 621811 wait_o Mar14 ?  00:08:13 [prometheus] <defunct>
1 D root      10941  10920  11057  0    6  80   0 - 621811 wait_o Mar14 ?  00:11:12 [prometheus] <defunct>
1 D root      10941  10920  11060  0    6  80   0 - 621811 wait_o Mar14 ?  00:11:42 [prometheus] <defunct>
1 D root      10941  10920  11298  0    6  80   0 - 621811 wait_o Mar14 ?  00:11:05 [prometheus] <defunct>


Linux
  1. Cosa sono i processi zombi e come trovare e uccidere i processi zombi?

  2. comando Linux ps

  3. Cosa sono i processi Linux, i thread, i processi leggeri e lo stato del processo

  4. Cambia lo stato del tasto Fn

  5. Il modo migliore per uccidere i processi di stato Zombie e D in Linux

Come uccidere i processi zombie in Ubuntu 20.04 LTS

Monitoraggio dei processi su Linux

Come usare il comando PS

Processi in esecuzione

Comprensione dei processi su Linux

Come uccidere i processi zombi in Ubuntu