GNU/Linux >> Znalost Linux >  >> Linux

Zombie vs zaniklé procesy?

Oba Zombie a defunct jsou stejné. ZOMBIE je jedním z state of the process zatímco neexistuje defunct stavu, můžete to vidět ze zdrojového kódu jádra.

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

Zombie stav znamená, kde opustil, ale ještě nebyl vyčištěn .

můžete otevřít manuálovou stránku proc(1) a podívejte se na toto /proc/[pid]/stat Stavové informace o procesu. Toto používá ps(1) .


Pro Linux jsou procesy "zaniklé" a "zombie" stejné.

Od man ps :

Procesy označené <defunct> jsou mrtvé procesy (tzv. „zombie“), které zůstávají, protože je jejich rodič řádně nezničil. Tyto procesy budou zničeny init(8), pokud nadřazený proces skončí.

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

Jak řekl Achal zaniklý přidal ps. Přísně vzato, nejsou totéž.

Například pouze tid 10941 byl v následující tabulce zombie. Ostatní vlákna byla ve stati D namísto 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. Co jsou zombie procesy a jak najít a zabít zombie procesy?

  2. Přepnout stav klávesy Fn

  3. Nejlepší způsob, jak zabít procesy Zombie a D state v linuxu

  1. Linuxový příkaz ps

  2. Co jsou linuxové procesy, vlákna, lehké procesy a stav procesu

  3. ps:příkaz nenalezen

  1. Jak zabít proces zombie na Linuxu

  2. Linux:Najděte a zabijte zombie procesy

  3. Vytvořte proces zombie