¿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 lopció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 -popció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 $USERtransmitiría el mismo significado, y trabajaría textualmente.FWIW,
pstiene 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,cmdo para obtener una vista del bosque con mi elección de columnas (pid,cmden este caso). Puede obtener una lista completa de columnas conps L.fuente
htoptambién es bueno, especialmente cuando se presionalel nombre de un proceso que mostrará todos los archivos, tuberías y URL abiertos para un proceso (requierelsof)fuente
Primer uso
toppara descubrirpidel proceso zombie. Luego correps -elfops -efpara encontrar elppiddel zombie.fuente