📜  Linux 中的 pstree 命令示例(1)

📅  最后修改于: 2023-12-03 15:02:43.611000             🧑  作者: Mango

Linux中的pstree命令

在Linux系统中,pstree是一个非常有用的命令,它可以列出当前系统中所有进程的父子关系,并以树状图的形式展示出来。本文将为程序员介绍pstree命令的使用方法和常用参数。

1. 安装pstree

Linux系统中大多数发行版都自带了pstree命令,但如果您的系统没有安装,则可以使用以下命令安装:

  • Debian / Ubuntu:sudo apt-get install psmisc
  • CentOS / RHEL:sudo yum install psmisc
  • Fedora:sudo dnf install psmisc
  • Arch:sudo pacman -S procps-ng
2. 命令语法

pstree命令的语法非常简单,如下所示:

pstree [options] [pid]
3. 常用参数

下面我们来介绍一下pstree命令的常用参数:

-p 参数

使用-p参数将会在进程ID后输出一个闭合的括号,方便查看进程ID。

pstree -p
-n 参数

-n参数表示不追踪进程间的关系,只展示出当前进程树的层级关系。

pstree -n
-u 参数

-u参数表示将进程以其拥有者的名字来显示。

pstree -u
-G 参数

-G参数表示将进程以相同的进程组来显示。

pstree -G
4. 示例

下面是一个pstree命令的使用示例:

[vagrant@localhost ~]$ pstree -p
systemd(1)─┬─ModemManager(917)─┬─{gdbus}(935)
           │                    └─{gmain}(934)
           ├─NetworkManager(951)─┬─dhclient(1131)
           │                     ├─{gdbus}(956)
           │                     └─{gmain}(955)
           ├─accounts-daemon(962)─┬─{gdbus}(965)
           │                      └─{gmain}(964)
           ├─agetty(1115)
           ├─amazon-ssm-agen(25106)─┬─{amazon-ssm-agen}(25213)
           │                       ├─{amazon-ssm-agen}(25249)
           │                       ├─{amazon-ssm-agen}(25258)
           │                       └─{amazon-ssm-agen}(25259)
           ├─atd(967)
           ├─auditd(888)─┬─{auditd}(891)
           │             └─{audispd}(889)
           ├─crond(962)
           ├─cupsd(971)
           ├─dbus-daemon(1036)
           ├─2*[dnsmasq(908)]
           ├─dockerd(20435)─┬─containerd(20447)
           │                 ├─containerd-shim(20460)─┬─{containerd-shim}(20466)
           │                 │                        ├─{containerd-shim}(20467)
           │                 │                        ├─{containerd-shim}(20468)
           │                 │                        ├─{containerd-shim}(20469)
           │                 │                        └─{containerd-shim}(20470)
           │                 └─docker-proxy(20438)
           ├─4*[getty(1114)]
           ├─httpd(1292)─┬─{httpd}(1293)
           │             ├─{httpd}(1294)
           │             ├─{httpd}(1295)
           │             ├─{httpd}(1296)
           │             ├─{httpd}(1297)
           │             ├─{httpd}(1298)
           │             ├─{httpd}(1299)
           │             ├─{httpd}(1300)
           │             ├─{httpd}(1301)
           │             └─{httpd}(1302)
           ├─irqbalance(932)───{irqbalance}(933)
           ├─polkitd(1048)─┬─{gdbus}(1060)
           │                └─{gmain}(1059)
           ├─rsyslogd(907)─┬─{in:imjournal}(910)
           │               ├─{in:imuxsock}(908)
           │               └─{rs:main Q:Reg}(909)
           ├─sshd(1355)───sshd(1476)───bash(1477)───pstree(27796)
           ├─sshd(1546)───sshd(1574)───sshd(1606)───bash(1607)───vim(1741)
           ├─systemd-journal(852)
           ├─systemd-logind(912)
           ├─systemd-resolve(930)
           ├─systemd-udevd(394)
           ├─tuned(987)─┬─{d}(1018)
           │            └─{tuned}(1017)
           ├─vmtoolsd(1637)─┬─{vmtoolsd}(1648)
           │                ├─{vmtoolsd}(1649)
           │                └─{vmtoolsd}(1650)
           └─vmware-guestd(1659)─┬─{vmware-guestd}(1784)
                            └─{vmware-guestd}(1785)
5. 结论

pstree命令可以让我们更方便地查看进程树,以便于快速定位问题。希望本文提供的介绍能够对程序员的Linux系统管理工作带来帮助。