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>