使用pstree命令查看进程状态

使用pstree命令查看进程状态

安装

[root@localhost ~]# yum -y install psmisc

pstree语法

功能描述:以树状图显示程序和进程之间的关系
语言

pstree [选项] [PID|用户名称]

选线及参数

  • -a:显示每个程序的完整指令,包含路径,参数或是常驻服务的标示
  • -c:不使用精简标示法
  • -G:使用VT100终端机的列绘图字符
  • -h:列出树状图时,特别标明现在执行的程序
  • -H<程序识别码>:此参数的效果和指定-h参数类似,但特别标明指定的程序
  • -l:采用长列格式显示树状图
  • -n:用程序识别码排序。预设是以程序名称来排序
  • -p:显示程序识别码
  • -u:显示用户名称
  • -U:使用UTF-8列绘图字符

pstree实例

显示系统的所有程序和进程信息

如果直接使用pstree命令,而不指定进程的PID和用户名称,则将以init进程为根进程,显示系统中所有的程序和进程信息

[root@localhost ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon───{dbus-daemon}
        ├─dhclient
        ├─firewalld───{firewalld}
        ├─login───bash
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───6*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─vmtoolsd───{vmtoolsd}

###附带用户名显示进程信息

[root@localhost ~]# pstree -u
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─auditd───{auditd}
        ├─chronyd(chrony)
        ├─crond
        ├─dbus-daemon(dbus)───{dbus-daemon}
        ├─dhclient
        ├─firewalld───{firewalld}
        ├─login───bash
        ├─lvmetad
        ├─master─┬─pickup(postfix)
        │        └─qmgr(postfix)
        ├─polkitd(polkitd)───6*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─vmtoolsd───{vmtoolsd}

###特别标明正在运行的程序

[root@localhost ~]# pstree -h
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon───{dbus-daemon}
        ├─dhclient
        ├─firewalld───{firewalld}
        ├─login───bash
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───6*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─vmtoolsd───{vmtoolsd}

###附带程序识别码显示进程信息


[root@localhost ~]# pstree -p
systemd(1)─┬─NetworkManager(761)─┬─{NetworkManager}(770)
           │                     └─{NetworkManager}(773)
           ├─VGAuthService(687)
           ├─auditd(657)───{auditd}(658)
           ├─chronyd(698)
           ├─crond(715)
           ├─dbus-daemon(693)───{dbus-daemon}(708)
           ├─dhclient(1803)
           ├─firewalld(726)───{firewalld}(1099)
           ├─login(719)───bash(1699)
           ├─lvmetad(521)
           ├─master(1189)─┬─pickup(2195)
           │              └─qmgr(1200)
           ├─polkitd(685)─┬─{polkitd}(707)
           │              ├─{polkitd}(711)
           │              ├─{polkitd}(712)
           │              ├─{polkitd}(714)
           │              ├─{polkitd}(721)
           │              └─{polkitd}(724)
           ├─rsyslogd(1003)─┬─{rsyslogd}(1008)
           │                └─{rsyslogd}(1009)
           ├─sshd(997)───sshd(1818)───bash(1822)───pstree(2313)
           ├─systemd-journal(496)
           ├─systemd-logind(709)
           ├─systemd-udevd(531)
           ├─tuned(998)─┬─{tuned}(1289)
           │            ├─{tuned}(1290)
           │            ├─{tuned}(1292)
           │            └─{tuned}(1294)
           └─vmtoolsd(688)───{vmtoolsd}(728)

###显示每个程序的完整指令,包含路径,参数或是常驻服务的标示

[root@localhost ~]# pstree -a
systemd --switched-root --system --deserialize 22
  ├─NetworkManager --no-daemon
  │   └─2*[{NetworkManager}]
  ├─VGAuthService -s
  ├─auditd
  │   └─{auditd}
  ├─chronyd
  ├─crond -n
  ├─dbus-daemon --system --address=systemd: --nofork --nopidfile--systemd-
  │   └─{dbus-daemon}
  ├─dhclient
  ├─firewalld -Es /usr/sbin/firewalld --nofork --nopid
  │   └─{firewalld}
  ├─login
  │   └─bash
  ├─lvmetad -f
  ├─master -w
  │   ├─pickup -l -t unix -u
  │   └─qmgr -l -t unix -u
  ├─polkitd --no-debug
  │   └─6*[{polkitd}]
  ├─rsyslogd -n
  │   └─2*[{rsyslogd}]
  ├─sshd -D
  │   └─sshd
  │       └─bash
  │           └─pstree -a
  ├─systemd-journal
  ├─systemd-logind
  ├─systemd-udevd
  ├─tuned -Es /usr/sbin/tuned -l -P
  │   └─4*[{tuned}]
  └─vmtoolsd
      └─{vmtoolsd}

查看启动进程的用户信息

[root@localhost ~]# pstree -u 715
crond
### Linux 中 `pstree` 命令使用方法 #### 什么是 `pstree`? `pstree` 是一个用于显示当前运行中的进程树状结构的工具。它可以直观地展示父进程与子进程之间的关系,并支持多种选项来增强其功能[^1]。 --- #### 基本语法 ```bash pstree [选项] [PID/用户名] ``` - 如果不指定 PID 或 用户名,则默认显示整个系统的进程树。 - 可通过附加参数调整输出样式和过滤条件。 --- #### 主要参数说明 | 参数 | 描述 | |------|------| | `-a` | 显示每个进程的完整命令行,而不仅仅是可执行文件名称[^3]。 | | `-p` | 在输出中包含进程 ID (PID)。 | | `-h` | 高亮显示给定的进程及其子进程。 | | `-H <pid>` | 类似于 `-h`,但只高亮指定的 `<pid>` 进程及其后代[^2]。 | | `-l` | 不截断长命令行,默认情况下较长的命令可能会被省略。 | | `-u` | 显示用户的 UID 和 GID,在某些版本中可能需要额外配置权限。 | --- #### 示例用法 ##### 示例 1: 查看完整的系统进程树 ```bash pstree ``` 此命令将以简洁的形式打印出所有正在运行的进程以及它们的关系图。 ##### 示例 2: 添加 PID 到输出中 ```bash pstree -p ``` 该命令会在每个进程中附带对应的 PID 编号,便于进一步分析具体进程信息。 ##### 示例 3: 展示某个特定进程的子树 假设已知目标进程的 PID 为 `1234`: ```bash pstree -hp 1234 ``` 这不仅限定了范围至某单一进程家族,还对其进行了高亮标记以便快速定位。 ##### 示例 4: 结合用户筛选查看某一账户下的活动流程 如果想单独观察属于 “root” 的那些分支可以这样操作: ```bash pstree root ``` 上述指令仅呈现由指定用户启动的相关项目列表。 ##### 示例 5: 输出更详细的调试数据 当遇到复杂场景时,可以通过增加细节层次获得更多信息: ```bash pstree -aplux ``` 这里组合多个标志位提供了最详尽的结果集,包括但不限于路径、参数甚至连接状态等字段。 --- ### 注意事项 虽然 `pstree` 提供了强大的可视化能力,但在实际应用过程中需要注意以下几点: - 对大规模服务器而言,生成全量视图可能导致性能开销较大; - 特殊字符或超长字符串有可能造成终端界面混乱现象发生; - 并非所有的发行版都预装有此实用程序,必要时候需自行安装软件包如 `psmisc` 来获取支持[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值