Como matar (kill) un proceso defunct

Este artículo es aplicable a GNU Linux 
Este artículo es aplicable a Solaris 


Los procesos defunct son procesos que se han corrompido de forma que ya no es posible la comunicación (no es la palabra correcta, ya que son señales las que se envían entre procesos) con su proceso padre o su proceso hijo. Así que matar (kill) al padre o al hijo en un 99% hará que el proceso defunct desaparezca. Sin procesos padre o hijo, corremos sin suerte.

aweba:/# ps -ef | grep -v \ \ root | grep -v pts/ | less

UID
PIDPPIDCSTIMETTYTIME CMD
xxxxxx
168
1
0Jan 13?0:00 /usr/lib/nfs/statd
yyyy
28835
28789
0Apr 07?2:05 xbiff++
zzz
13868
1
0

0:00 <defunct>
aaaa
24724
24721
0Apr 02?0:02 /usr/openwin/bin/xload -hl red -g
eom +396+26






nnnn
28789
28786
0Apr 07?0:00 /pkg/local/bin/tcsh -c xbiff++

Ahora usamos /usr/proc/bin/ptree para encontrar el padre o el hijo. Los usuarios de Linux pueden tratar con ps -ef –forest | less
aweba:/# /usr/proc/bin/ptree 13868
13868 <defunct>
16596 a.out
aweba:/# kill -9 16596
Listo!!
o
bash# /usr/proc/bin/ptree `ps -ef | grep -v ^\ \ \ \ root | awk ‘/<defunct>/ {print $2}’` | less

Comentarios

Entradas populares