【运维经】第36章——pstree查看进程树

运维经–目录


pstree查看进程树

Linux pstree命令将所有行程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的行程。
使用权限:所有使用者。

  1. -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
  2. -c 如果有重覆的行程名, 则分开列出(预设值是会在前面加上 *)

使用

systemd─┬─ModemManager─┬─{gdbus}
        │              └─{gmain}
        ├─NetworkManager─┬─dhclient
        │                ├─{gdbus}
        │                └─{gmain}
        ├─accounts-daemon─┬─{gdbus}
        │                 └─{gmain}
        ├─acpid
        ├─at-spi2-registr─┬─{gdbus}
        │                 └─{gmain}
        ├─avahi-daemon───avahi-daemon
        ├─bamfdaemon-dbus───bamfdaemon─┬─{gdbus}
        │                              └─{gmain}

显示进程间的关系

(base) frank@deepin:~/project/test/script$ pstree -apnh
systemd,1 splash
  ├─systemd-journal,314
  ├─lvmetad,320 -f
  ├─systemd-udevd,339
  ├─systemd-timesyn,621
  │   └─{sd-resolve},1112
  ├─dbus-daemon,1124 --system --address=systemd: --nofork --nopidfile --systemd-activation
  ├─ModemManager,1189
  │   ├─{gmain},1195
  │   └─{gdbus},1245
  ├─systemd-logind,1190
  ├─cron,1197 -f
  ├─dde-system-daem,1200
  │   ├─{dde-system-daem},1970
  │   ├─{dde-system-daem},1971
  │   ├─{dde-system-daem},1973
  │   ├─{dde-system-daem},1975
  │   ├─{dde-system-daem},1976
  │   ├─{dde-system-daem},2183
  │   ├─{dde-system-daem},2227

显示用户名称

systemd─┬─ModemManager─┬─{gdbus}
        │              └─{gmain}
        ├─NetworkManager─┬─dhclient
        │                ├─{gdbus}
        │                └─{gmain}
        ├─accounts-daemon─┬─{gdbus}
        │                 └─{gmain}
        ├─acpid
        ├─at-spi2-registr(frank)─┬─{gdbus}
        │                        └─{gmain}
        ├─avahi-daemon(avahi)───avahi-daemon
        ├─bamfdaemon-dbus(frank)───bamfdaemon─┬─{gdbus}
        │                                     └─{gmain}
        ├─bluetoothd
        ├─containerd───16*[{containerd}]
        ├─cron
        ├─cupsd
        ├─dbus-daemon(messagebus)
        ├─3*[dbus-daemon(frank)]

<think>好的,我现在需要回答用户的问题:如何在Linux查看系统进程树。用户提到想查找相关方法,所以我得提供几种常用的命令和工具。 首先,我记得`pstree`命令是专门用来显示进程树的。这个命令应该可以直接展示父子进程关系,结构清晰。可能需要检查是否已经安装,大部分Linux发行版应该默认安装了,但可能需要通过包管理器安装`psmisc`包。比如在Ubuntu上可能需要`sudo apt install psmisc`。 然后,`ps`命令也是一个常用工具,配合不同的参数可以显示进程信息。比如`ps auxf`中的`f`选项会显示进程的树状结构。不过用户可能需要知道`aux`和`f`选项的作用,`a`显示所有用户的进程,`u`显示用户格式,`x`包括没有控制终端的进程,而`f`显示树形结构。 还有`htop`工具,这是一个交互式的进程查看器,需要用户安装。在启用树状视图时,可以更直观地浏览进程树。可能需要指导用户如何在`htop`中切换视图,比如按下`F5`或者使用`-t`选项启动。 另外,`systemd-cgtop`是针对使用systemd的系统来查看控制组资源使用情况的,虽然主要不是进程树,但也能显示层次结构,可能作为补充选项。 需要确保提到的每个命令都有正确的语法和示例,比如`pstree -p`显示PID,`ps auxf`的具体输出形式。还要注意用户权限问题,可能需要使用`sudo`来查看所有用户的进程。 最后,生成相关问题时要考虑用户可能进一步想知道如何安装这些工具、如何过滤特定进程,或者如何持续监控进程树的变化。这样能帮助用户更深入地理解和使用这些命令。</think>在Linux系统中,查看进程树可以通过以下方法实现,进程树以层级结构展示进程间的父子关系: 1. **pstree命令** ```bash pstree -p # 显示带PID的进程树 ``` 该命令默认以ASCII字符绘制树状图,`-p`参数显示进程ID(PID)。若未安装需执行`sudo apt install psmisc`(Debian/Ubuntu)[^1]。 2. **ps命令扩展格式** ```bash ps auxf # 显示树状进程关系 ``` 其中`f`参数表示"forest",将进程以缩进格式显示父子关系,`aux`组合参数显示所有用户进程的完整信息。 3. **htop交互式查看器** ```bash htop -t # 启动时直接进入树状视图 ``` 安装后按`F5`切换树状视图,支持鼠标操作和颜色高亮,需通过`sudo apt install htop`安装。 4. **systemd系统专用工具** ```bash systemd-cgtop # 显示控制组层级的资源占用 ``` 该命令适用于使用systemd初始化进程的系统,展示进程控制组的CPU/Memory占用排名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏 克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值