12.2 查看进程树

ps axjf

在Linux世界中,进程并不是凭空出现的。通常,启动一个程序的同时,也会启动其他程序。例如,Linux系统中的所有进程最初都来自init,它是所有进程的源头,其PID总为1ps命令能够提供该进程树的一种基于文本的表现方式,这样就能可视化地看看该进程又创建了哪些其他进程。要查看进程树,除了使用上一节用过的aux选项,还要加上个f(其名称源于ASCII art forest)选项。

说明 通常会看到以下各列内容:

  1. PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND

为了让命令树更易于理解,下列代码列表删除了用ps axuf命令实际会看到的大部分列。

  1. $ ps axuf
  2. PPID PID COMMAND
  3. 1 7558 /usr/sbin/gdm
  4. 7558 7561 \_ /usr/sbin/gdm
  5. 7561 7604 \_ /usr/X11R6/bin/X :0
  6. 7561 8225 \_ /bin/sh /usr/bin/startkde
  7. 8225 8279 \_ /usr/bin/ssh-agent
  8. 8225 8341 \_ kwrapper ksmserver
  9. 1 8316 kdeinit Running...
  10. 8316 10842 \_ konqueror [kdeinit] --silent
  11. 8316 29663 \_ quanta
  12. 8316 30906 \_ /usr/bin/kwrite /home/scott/analysis
  13. 8316 17893 \_ /usr/lib/opera/9.0-20060206.1/opera
  14. 17893 17960 | \_ /usr/lib/opera/pluginwrapper
  15. 17893 17961 | \_ /usr/lib/opera/plugincleaner

注意,ps axjf命令引入了一个重要的新列:PPIDPPID(Parent Process ID,父进程ID编号)是创建PID进程的进程的PID编号。有了PID或PPID,就能够终止任何失控(runaway)的进程,将在12.4节中进行介绍。