zombies zombie ver sleeping procesos proceso matar cómo crear corriendo comando linux shell ubuntu debian zombie-process

linux - ver - procesos zombies windows



Cómo matar el proceso zombie (5)

Lo intenté

kill -9 $(ps -A -ostat,ppid | grep -e ''[zZ]''| awk ''{ print $2 }'')

Y funciona para mi.

Lancé mi programa en primer plano (un programa daemon), y luego lo maté con kill -9 , pero me queda un zombie y no puedo matarlo con kill -9 . Cómo matar un proceso zombie?

Si el zombie es un proceso muerto (ya fallecido), ¿cómo lo elimino de la salida de ps aux ?

root@OpenWrt:~# anyprogramd & root@OpenWrt:~# ps aux | grep anyprogram 1163 root 2552 S anyprogramd 1167 root 2552 S anyprogramd 1169 root 2552 S anyprogramd 1170 root 2552 S anyprogramd 10101 root 944 S grep anyprogram root@OpenWrt:~# pidof anyprogramd 1170 1169 1167 1163 root@OpenWrt:~# kill -9 1170 1169 1167 1163 root@OpenWrt:~# ps aux |grep anyprogram 1163 root 0 Z [cwmpd] root@OpenWrt:~# kill -9 1163 root@OpenWrt:~# ps aux |grep anyprogram 1163 root 0 Z [cwmpd]


Lo intenté:

ps aux | grep -w Z # returns the zombies pid ps o ppid {returned pid from previous command} # returns the parent kill -1 {the parent id from previous command}

esto funcionará :)


Puede limpiar un proceso zombie matando su proceso principal con el siguiente comando:

kill -HUP $(ps -A -ostat,ppid | grep -e ''[zZ]''| awk ''{ print $2 }'')


Un zombie ya está muerto, por lo que no puedes matarlo. Para limpiar un zombie, su padre debe esperarlo, por lo que matar al padre debería funcionar para eliminar al zombi. (Después de que el padre fallece, el zombi lo heredará init , que esperará y borrará su entrada en la tabla de procesos). Si tu daemon está engendrando niños que se convierten en zombies, tienes un error. Su daemon debería notar cuándo mueren sus hijos y wait para determinar su estado de salida.

Un ejemplo de cómo se puede enviar una señal a cada proceso que sea el padre de un zombie (tenga en cuenta que esto es extremadamente crudo y podría matar procesos que no tiene la intención. No recomiendo usar este tipo de martillo):

kill $(ps -A -ostat,ppid | awk ''/[zZ]/ && !a[$2]++ {print $2}'')


Lo encontró en http://www.linuxquestions.org/questions/suse-novell-60/howto-kill-defunct-processes-574612/

2) Aquí un gran consejo de otro usuario (Thxs Bill Dandreta): A veces

kill -9 <pid>

no matará un proceso. correr

ps -xal

el 4 ° campo es el proceso principal, ¡mata a todos los padres de un zombi y el zombi muere!

Ejemplo

4 0 18581 31706 17 0 2664 1236 wait S ? 0:00 sh -c /usr/bin/gcc -fomit-frame-pointer -O -mfpmat 4 0 18582 18581 17 0 2064 828 wait S ? 0:00 /usr/i686-pc-linux-gnu/gcc-bin/3.3.6/gcc -fomit-fr 4 0 18583 18582 21 0 6684 3100 - R ? 0:00 /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/cc1 -quie

18581 , 18582 , 18583 son zombis -

kill -9 18581 18582 18583

no tiene efecto.

kill -9 31706

elimina a los zombies.