Come trovi il processo genitore di un processo zombi?


47

Come trovi il processo genitore dei processi zombi?

Quando il processo figlio è qualcosa in cui il genitore non è del tutto ovvio ...

C'è un modo per elencare i processi nel formato ad albero o qualcosa del genere?

Risposte:


61

Aggiungi l' lopzione alla tua riga di comando ps. Questa è l'opzione per un output lungo. L'ID del processo padre è una delle colonne aggiuntive - etichettata 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

Un'altra opzione è il comando pstree per mostrare una rappresentazione ad albero ASCII dei processi. Probabilmente vorrai l' -popzione per mostrare gli ID di processo.

$ 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)

8
Risposta eccellente. Invece di pstree -p harris, pstree -p $USERtrasmetterebbe lo stesso significato e funzionerebbe alla lettera.
phihag,

12

FWIW, psha una modalità "foresta" che mostra più alberi:

# ps --version
procps version 3.2.8

# ps f
  PID TTY      STAT   TIME COMMAND
 7889 pts/7    Ss     0:00 -bash
 7988 pts/7    R+     0:00  \_ ps f
 2447 pts/0    Ss+    0:00 -bash
 2532 pts/0    S      0:00  \_ /bin/bash /home/robmee01/sync.sh
 2548 pts/0    S      0:00  |   \_ ssh usernamer@example.com
 2533 pts/0    S      0:00  \_ python /home/robmee01/IE2FF.py
 2534 pts/0    S      0:08  \_ x11vnc -usepw -forever
 2535 pts/0    S      2:47  \_ xosview
 2536 pts/0    Sl     0:17  \_ java -jar /work/timesheet/TimeSheet.jar
 2662 pts/0    Sl    18:53  \_ ./firefox-bin

Se questo non visualizzare il processo che si sta cercando, provare a specificare il nome utente in modo esplicito: ps f -U $USER; questo tende a mostrare più processi che semplici ps.

Personalmente uso ps fo pid,cmdo per ottenere una vista foresta con la mia scelta di colonne ( pid,cmdin questo caso). Puoi ottenere un elenco completo di colonne con ps L.


Perfetto, l'unica opzione che funziona davvero.
Felipe,

1

htopè anche buono, specialmente quando si preme lsu un nome di processo che mostrerà tutti i file aperti, pipe e URL per un processo (richiede lsof)


htop può anche essere commutato in modalità albero.
lanoxx,

-1

Primo utilizzo topper scoprire pidil processo zombi. Quindi corri ps -elfo ps -eftrova ppidlo zombi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.