GNU/Linux >> Tutoriels Linux >  >> Linux

Processus zombie vs défunt ?

Les deux Zombie et defunct sont identiques. ZOMBIE est celui des state of the process alors qu'il n'y a pas de defunct état, vous pouvez le voir à partir du code source de votre noyau.

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

L'état zombie signifie où il est sorti mais n'a pas encore été nettoyé .

vous pouvez ouvrir la page de manuel de proc(1) et voir ce /proc/[pid]/stat Informations d'état sur le processus. Ceci est utilisé par ps(1) .


Pour Linux, les processus "défunts" et "zombies" sont les mêmes.

Depuis man ps :

Processus marqués <defunct> sont des processus morts (appelés "zombies") qui restent parce que leur parent ne les a pas détruits correctement. Ces processus seront détruits par init(8) si le processus parent se termine.

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

Comme l'a dit Achal, le défunt a été ajouté par ps. À proprement parler, ce n'est pas la même chose.

Par exemple, seul tid 10941 était un zombie dans le tableau suivant. Les autres threads étaient dans stat D au lieu de 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. Comment tuer un processus zombie sous Linux

  2. Commande Linux ps

  3. Que sont les processus Linux, les threads, les processus légers et l'état du processus

  4. Changer l'état de la touche Fn

  5. Meilleur moyen de tuer les processus d'état Zombie et D sous Linux

Comment tuer les processus zombies dans Ubuntu 20.04 LTS

Surveillance des processus sous Linux

Comment utiliser la commande PS

Processus en cours d'exécution

Comprendre les processus sous Linux

Comment tuer les processus zombies dans Ubuntu