Как вы находите родительский процесс процессов зомби?
Когда дочерний процесс является чем-то, где родитель не совсем очевиден ...
Есть ли какой-нибудь способ перечислить процессы в древовидном формате или что-то?
Добавьте l
опцию в вашу командную строку ps. Это вариант для длительного вывода. Идентификатор родительского процесса является одним из дополнительных столбцов, помеченных как 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
Другой вариант - команда pstree, чтобы показать представление процессов в виде дерева ascii. Возможно, вам захочется -p
показать идентификаторы процессов.
$ 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
чтобы передать то же значение и дословно работать.FWIW,
ps
имеет режим «лес», который показывает несколько деревьев:Если это не отображает процесс , который вы ищете, попробуйте указать имя пользователя в явном виде:
ps f -U $USER
; это имеет тенденцию показывать больше процессов, чем обычныйps
.Лично я использую
ps fo pid,cmd
или, чтобы получить представление леса с моим выбором столбцов (pid,cmd
в этом случае). Вы можете получить полный список столбцов сps L
.источник
htop
также хорошо, особенно если нажатьl
на имя процесса, которое покажет все открытые файлы, каналы и URL-адреса для процесса (требуетсяlsof
)источник
Сначала используйте,
top
чтобы узнатьpid
о процессе зомби. Тогда бегиps -elf
илиps -ef
найдиppid
зомби.источник