ps
是 Linux 系统中用于显示当前系统进程状态的命令。默认情况下,ps
命令显示的是当前终端下的进程信息。如果你想要查看进程树,也就是进程的层次结构,可以使用 ps
命令的 -ef
选项或者 pstree
命令。
ps -ef
查看进程树ps -ef
命令会列出系统中所有的进程,并且以树状结构展示进程之间的父子关系。其中:
e
表示显示所有进程。f
表示全格式显示,包括进程树。示例命令:
ps -ef
输出示例:
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 08:00 ? 00:00:02 /sbin/init
root 2 0 0 08:00 ? 00:00:00 [kthreadd]
root 3 2 0 08:00 ? 00:00:00 [ksoftirqd/0]
...
在输出中,PPID
列表示父进程的 ID,通过这个列可以大致看出进程之间的父子关系。
pstree
查看进程树pstree
命令以树状图的方式显示进程之间的层次关系,比 ps -ef
更直观。
示例命令:
pstree
输出示例:
init─┬─NetworkManager─┬─dhclient
│ ├─2*[{NetworkManager}]
│ └─nm-tray
├─accounts-daemon───2*[{accounts-daemon}]
├─acpid
├─atd
├─cron
├─dbus-daemon───{dbus-daemon}
├─gnome-terminal─┬─bash───pstree
│ └─gnome-pty-helpe
├─gnome-terminal─┬─bash
│ └─vi
├─gnome-sessio───gnome-session-quit
├─gnome-shell
├─gnome-terminal───bash
├─irqbalance
├─libvirtd───2*[{libvirtd}]
├─login───gnome-terminal
├─master─┬─qmgr
│ └─pickup
├─polkitd───2*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd───sshd───bash───pstree
├─systemd-journald
├─systemd-logind
├─systemd-udevd
└─upstart-udev-br
pstree
命令的输出以树状结构展示进程之间的父子关系,根节点通常是 init
进程(PID 1)。[]
中的进程通常是内核线程。pstree
命令可能需要单独安装,具体取决于你的 Linux 发行版。例如,在 Debian 或 Ubuntu 系统上,可以使用 sudo apt-get install psmisc
来安装。ps -ef
和 pstree
命令的输出可能会非常长,可以使用 grep
命令来过滤特定的进程。示例:
ps -ef | grep sshd
或者
pstree | grep sshd
这样可以更方便地查看与特定进程相关的信息。
领取专属 10元无门槛券
手把手带您无忧上云