Jak znaleźć proces macierzysty procesów zombie?
Gdy proces potomny jest czymś, co rodzic nie jest całkowicie oczywiste ...
Czy istnieje jakiś sposób, aby wyświetlić listę procesów w formacie drzewa lub coś takiego?
Dodaj l
opcję do wiersza polecenia ps. Jest to opcja długiej wydajności. Identyfikator procesu nadrzędnego jest jedną z dodatkowych kolumn - oznaczoną 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
Inną opcją jest polecenie pstree, które pokazuje reprezentację procesów w drzewku ascii. Prawdopodobnie będziesz potrzebować -p
opcji wyświetlania identyfikatorów procesów.
$ 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
by przekazać to samo znaczenie, a verbatim praca.FWIW,
ps
ma tryb „leśny”, który pokazuje wiele drzew:Jeśli to nie wyświetla proces, którego szukasz, spróbuj podając swoją nazwę użytkownika wyraźnie:
ps f -U $USER
; zwykle pokazuje więcej procesów niż zwykłyps
.Osobiście używam
ps fo pid,cmd
lub, aby uzyskać widok lasu z wybranym wyborem kolumn (pid,cmd
w tym przypadku). Możesz uzyskać pełną listę kolumn za pomocąps L
.źródło
htop
jest również dobry, szczególnie po naciśnięciul
nazwy procesu, który pokaże wszystkie otwarte pliki, potoki i adresy URL dla procesu (wymagalsof
)źródło
Najpierw użyj,
top
aby dowiedzieć siępid
o procesie zombie. Następnie uruchomps -elf
lub,ps -ef
aby znaleźćppid
zombie.źródło