¿Cómo encuentras el proceso padre de los procesos zombie?
Cuando el proceso hijo es algo en el que el padre no es del todo obvio ...
¿Hay alguna forma de enumerar procesos en formato de árbol o algo así?
Agregue la l
opción a su línea de comando ps. Esta es la opción para salida larga. La identificación del proceso principal es una de las columnas adicionales, etiquetada PPID.
$ ps l
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
0 508 3344 4498 18 0 2452 1236 wait Ss pts/12 0:00 /bin/sh
0 508 4467 17796 15 0 4664 1572 wait Ss pts/5 0:00 -/bin/bash
0 508 4498 4467 15 0 23032 15108 - S+ pts/5 2:20 emacs -nw
0 508 4532 17796 15 0 4532 1464 wait Ss pts/13 0:00 -/bin/bash
0 508 4916 17796 15 0 4664 1648 wait Ss pts/7 0:01 -/bin/bash
Otra opción es el comando pstree para mostrar una representación de árbol ascii de los procesos. Probablemente desee la -p
opción de mostrar identificadores de proceso.
$ pstree -p dharris
screen(17796)─┬─bash(4467)───emacs(4498)───sh(3344)───sh(3345)
├─bash(4532)───su(31037)───bash(31041)
├─bash(4916)───pstree(26456)
├─bash(13547)───su(20442)───bash(20443)
└─bash(17797)
sshd(25813)───bash(25817)───screen(25870)
pstree -p harris
,pstree -p $USER
transmitiría el mismo significado, y trabajaría textualmente.FWIW,
ps
tiene un modo "bosque" que muestra varios árboles:Si eso no muestra el proceso que está buscando, intente especificar su nombre de usuario explícitamente
ps f -U $USER
:; esto tiende a mostrar más procesos que los antiguosps
.Personalmente uso
ps fo pid,cmd
o para obtener una vista del bosque con mi elección de columnas (pid,cmd
en este caso). Puede obtener una lista completa de columnas conps L
.fuente
htop
también es bueno, especialmente cuando se presional
el nombre de un proceso que mostrará todos los archivos, tuberías y URL abiertos para un proceso (requierelsof
)fuente
Primer uso
top
para descubrirpid
el proceso zombie. Luego correps -elf
ops -ef
para encontrar elppid
del zombie.fuente