曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 5317|回复: 0
打印 上一主题 下一主题

pstree -- 列出进程树

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
跳转到指定楼层
楼主
发表于 2011-5-21 13:22:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
语法
pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user] pstree -V

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

默认下运行会列出从始于 init 的进程树:
[root@centos ~]# pstree
init─┬─_plutorun─┬─_plutoload
     │           └─_plutorun───pluto───_pluto_adns
     ├─acpid
     ├─atd
     ├─auditd─┬─audispd───{audispd}
     │        └─{auditd}
     ├─automount───4*[{automount}]
     ├─avahi-daemon───avahi-daemon
     ├─blktapctrl───{blktapctrl}
     ├─brcm_iscsiuio───2*[{brcm_iscsiuio}]
     ├─crond
     ├─cupsd
     ├─dbus-daemon
     ├─dhclient
     ├─dnsmasq
     ├─events/0
     ├─gam_server
     ├─gpm
     ├─hald───hald-runner─┬─hald-addon-acpi
     │                    ├─hald-addon-keyb
     │                    └─hald-addon-stor
     ├─hcid
     ├─hidd
     ├─hpiod
     ├─hpssd.py
     ├─httpd───8*[httpd]
     ├─2*[iscsid]
     ├─khelper
     ├─klogd
     ├─krfcommd
     ├─ksoftirqd/0
     ├─kthread─┬─aio/0
     │         ├─ata/0
     │         ├─ata_aux
     │         ├─cqueue/0
     │         ├─ib_addr
     │         ├─ib_cm/0
     │         ├─ib_inform
     │         ├─ib_mcast
     │         ├─ipoib
     │         ├─iscsi_eh
     │         ├─iw_cm_wq
     │         ├─iw_cxgb3
     │         ├─kacpid
     │         ├─kauditd
     │         ├─kblockd/0
     │         ├─kedac
     │         ├─khubd
     │         ├─khungtaskd
     │         ├─2*[kjournald]
     │         ├─kmpath_handlerd
     │         ├─kmpathd/0
     │         ├─kpsmoused
     │         ├─krdsd
     │         ├─kseriod
     │         ├─ksnapd
     │         ├─kstriped
     │         ├─kswapd0
     │         ├─local_sa
     │         ├─nfsd4
     │         ├─pccardd
     │         ├─2*[pdflush]
     │         ├─rdma_cm
     │         ├─rpciod/0
     │         ├─sdp
     │         ├─xenbus
     │         └─xenwatch
     ├─libvirtd───6*[{libvirtd}]
     ├─lockd
     ├─logger
     ├─migration/0
     ├─6*[mingetty]
     ├─modclusterd───2*[{modclusterd}]
     ├─8*[nfsd]
     ├─nmbd
     ├─oddjobd
     ├─pcscd───{pcscd}
     ├─portmap
     ├─ricci
     ├─rpc.idmapd
     ├─rpc.mountd
     ├─rpc.rquotad
     ├─rpc.statd
     ├─saslauthd───4*[saslauthd]
     ├─sdpd
     ├─2*[sendmail]
     ├─smartd
     ├─smbd───smbd
     ├─sshd─┬─2*[sshd───bash───sh───sleep]
     │      └─sshd───bash───pstree
     ├─syslogd
     ├─udevd
     ├─uuidd
     ├─watchdog/0
     ├─xenconsoled───{xenconsoled}
     ├─xend───xend───5*[{xend}]
     ├─xenstored
     ├─xfs
     ├─xinetd
     └─yum-updatesd
从上面的蓝色部分可以看到,因为我们这里是通过 putty 的 ssh 连接过来的,连接上去后会获得一个 shell ,然后在 shell 里执行了 pstree 命令。

常用的是 -H 参数,后面跟进程的进程号,比如在获得 top 命令的 PID 后,如下执行:
[root@centos ~]# pstree -H 10022 |grep top
     |      `-sshd---bash---top
这样就没有必要列出完整的树,而只是列出与 top 相关的树。

-a 参数会显示出命令行参数,如:
├─sshd
  │   ├─sshd
  │   │   └─bash
  │   │       └─sh post.sh
  │   │           └─curl -A Mozilla/4.0 -d...  │   ├─sshd
  │   │   └─bash
  │   │       └─sh post.sh
  │   │           └─curl -A Mozilla/4.0 -d...  │   ├─sshd
  │   │   └─bash
  │   └─sshd
  │       └─bash
  │           └─pstree -a
上面蓝色部分是我一直在运行的两个脚本,其中脚本中主要在运行一个 curl 命令。从输出看到,这个命令并不完整,只是显示了命令以及它参数的头部的一些内容。如果你想显示完整的命令参数,可以再用 -l 参数(但是长度仍然有限制,只是会比 -a 显示的更长,一般为 132 字节)。

-l 参数,使用长列格式:
[root@centos ~]# pstree -al
... ...
  ├─sshd
  │   ├─sshd
  │   │   └─bash
  │   │       └─sh post.sh
  │   │           └─curl -A Mozilla/4.0 -dmessage=%B9%BA%C2%F2%D3%B0%B3%DBGT430%BA%DA%BD%AB%B5%C4%D4%AD%D2%F2%A3%BA1.%B3%AC%B9%AB%B0%E6%C9%E8%BC%C6%A3%BB2.%C8%FD%B4%F
... ...
从输出可以看到,curl 命令后面的许多内容被显示出来了,但是完整的命令却仍然不止这些输出,但对于一般的命令来说,这么长的显示长度已经足够了。

其它的参数可以参考 man 手册。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-18 07:39 , Processed in 0.061964 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表