GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Zombie vs. nicht mehr funktionierende Prozesse?

Beide Zombie und defunct sind gleich. ZOMBIE ist einer der state of the process während es kein defunct gibt Zustand, können Sie es aus Ihrem Kernel-Quellcode sehen.

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

Zombie-Zustand bedeutet, dass er ausgetreten ist, aber noch nicht bereinigt wurde .

Sie können die Manpage von proc(1) öffnen und sehen Sie sich diesen /proc/[pid]/stat an Statusinformationen zum Prozess. Dies wird von ps(1) verwendet .


Für Linux sind "nicht mehr funktionierende" und "Zombie"-Prozesse gleich.

Ab man ps :

Mit <defunct> gekennzeichnete Prozesse sind tote Prozesse (sogenannte "Zombies"), die übrig bleiben, weil ihr Elternteil sie nicht richtig zerstört hat. Diese Prozesse werden von init(8) zerstört, wenn der übergeordnete Prozess beendet wird.

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

Wie Achal sagte, wurde Verstorbener von ps hinzugefügt. Streng genommen sind sie nicht dasselbe.

Zum Beispiel war nur tid 10941 in der folgenden Tabelle ein Zombie. Die anderen Threads waren in stat D statt in 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. Was sind Zombie-Prozesse und wie findet und tötet man Zombie-Prozesse?

  2. Linux-ps-Befehl

  3. Linux:Finde und töte Zombie-Prozesse

  4. Wechseln Sie den Status der Fn-Taste

  5. Beste Möglichkeit, Zombie- und D-State-Prozesse in Linux zu beenden

So töten Sie Zombie-Prozesse in Ubuntu 20.04 LTS

Prozessüberwachung unter Linux

So verwenden Sie den PS-Befehl

Laufende Prozesse

Prozesse unter Linux verstehen

So töten Sie Zombie-Prozesse in Ubuntu