Comment trouvez-vous le processus parent d'un processus zombie?

47

Comment trouvez-vous le processus parent des processus zombies?

Lorsque le processus enfant est quelque chose où le parent n'est pas tout à fait évident ...

Existe-t-il un moyen de répertorier les processus sous forme d'arborescence ou quelque chose d'autre?

Jack
la source

Réponses:

61

Ajoutez l' loption à votre ligne de commande ps. C'est l'option pour une sortie longue. L'identifiant du processus parent est l'une des colonnes supplémentaires, appelée 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

Une autre option est la commande pstree pour afficher une représentation sous forme d'arborescence ascii des processus. Vous voudrez probablement avoir la -ppossibilité d'afficher les identifiants de processus.

$ 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)
Doug Harris
la source
8
Excellente réponse. Au lieu de pstree -p harris, pstree -p $USERcela transmettrait le même sens et fonctionnerait textuellement.
Phihag
12

FWIW, psa un mode "forest" qui montre plusieurs arbres:

# 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 [email protected]
 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

Si cela n'affiche pas le processus que vous recherchez, essayez de spécifier explicitement votre nom d' utilisateur: ps f -U $USER; cela tend à montrer plus de processus que tout à fait vieux ps.

Personnellement, j'utilise ps fo pid,cmdou pour obtenir une vue de la forêt avec mon choix de colonnes ( pid,cmddans ce cas). Vous pouvez obtenir une liste complète des colonnes avec ps L.

RobM
la source
Parfait, la seule option qui fonctionne vraiment.
Felipe
1

htopest également bon, surtout lorsque vous appuyez lsur un nom de processus qui affichera tous les fichiers ouverts, les tuyaux et les URL pour un processus (nécessite lsof)

ccpizza
la source
htop peut également être basculé en mode arborescence.
Lanoxx
-1

Première utilisation toppour découvrir pidle processus zombie. Puis lancez ps -elfou ps -eftrouver ppidle zombie.

Rajesh Swain
la source