您如何找到僵尸进程的父进程?


47

您如何找到僵尸进程的父进程?

当子进程不完全是父进程时...

有什么方法可以以树格式列出进程?

Answers:


61

l选项添加到ps命令行。这是长输出的选项。父进程ID是附加列之一-标记为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选项显示进程ID。

$ 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
极好的答案。相反pstree -p harrispstree -p $USER会传达相同的含义,并且逐字地工作。
phihag,2012年

12

FWIW ps具有“森林”模式,该模式显示多棵树:

# 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

如果未显示您要查找的过程,请尝试明确指定用户名:ps f -U $USER; 这往往比普通的显示更多的进程ps

就我个人而言,我使用ps fo pid,cmd或通过选择列来获取林视图(pid,cmd在这种情况下)。您可以使用获取完整的列列表ps L


完美,唯一可行的选择。
费利佩

1

htop也很好,尤其是当按下l一个进程名称时,该名称将显示该进程的所有打开的文件,管道和url(需要lsof


htop也可以切换到树模式。
lanoxx

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.