linux ps实例,ps命令的10个例子

5. 以树的形式显示进程层级

许多进程实际上是从同一个父进程fork出来的,了解父子关系通常是很有用的。"--forest" 选项会构造一个ascii艺术形式的进程层级视图。

下面的命令会用apache2的进程名来搜索并构造一个树来显示具体信息。

$ ps -f --forest -C apache2

UID PID PPID C STIME TTY TIME CMD

root 2359 1 0 09:32 ? 00:00:00 /usr/sbin/apache2 -k start

www-data 4524 2359 0 10:03 ? 00:00:00 \_ /usr/sbin/apache2 -k start

www-data 4525 2359 0 10:03 ? 00:00:00 \_ /usr/sbin/apache2 -k start

www-data 4526 2359 0 10:03 ? 00:00:00 \_ /usr/sbin/apache2 -k start

www-data 4527 2359 0 10:03 ? 00:00:00 \_ /usr/sbin/apache2 -k start

www-data 4528 2359 0 10:03 ? 00:00:00 \_ /usr/sbin/apache2 -k start

不要在排序中使用树状显示,因为两者都会以不同方式影响显示的顺序。

6. 显示父进程的子进程

下面一个是找出所有从apache进程fork出来的进程的例子。

$ ps -o pid,uname,comm -C apache2

PID USER COMMAND

2359 root apache2

4524 www-data apache2

4525 www-data apache2

4526 www-data apache2

4527 www-data apache2

4528 www-data apache2

第一个属于root的进程是apache2的主进程,其他的apache进程都是从主进程fork出来的。下面的命令使用apache2主进程的pid列出了所有的apache2的子进程。

$ ps --ppid 2359

PID TTY TIME CMD

4524 ? 00:00:00 apache2

4525 ? 00:00:00 apache2

4526 ? 00:00:00 apache2

4527 ? 00:00:00 apache2

4528 ? 00:00:00 apache2

7. 显示进程的线程

"-L"选项会随着进程一起显示线程。它可用于显示所有指定进程或者所有进程的线程。

下面的命令会显示进程id为3150的进程的所有线程。

$ ps -p 3150 -L

8. 改变显示的列

ps命令可以被配置用来只显示被选中的列。很多列可以被用来显示,完整的列表可以查看man页。

下面的命令会只显示pid、用户名、cpu、内存、命令列。

$ ps -e -o pid,uname,pcpu,pmem,comm

同样可以重命名列的名字。

$ ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm

PID USERNAME CPU_USAGE %MEM COMMAND

1 root 0.0 0.0 init

2 root 0.0 0.0 kthreadd

3 root 0.0 0.0 ksoftirqd/0

4 root 0.0 0.0 kworker/0:0

5 root 0.0 0.0 kworker/0:0H

7 root 0.0 0.0 migration/0

8 root 0.0 0.0 rcu_bh

9 root 0.0 0.0 rcuob/0

10 root 0.0 0.0 rcuob/1

非常灵活。

9. 显示进程运行的时间

运行的时间指的是,进程已经运行的时间。运行时间的列并没有默认显示,需要使用-o选项带入。

$ ps -e -o pid,comm,etime

10. 将ps转换为实时进程查看器

通常上,watch命令可将ps命令变成实时进程查看器。像这个简单的命令

$ watch -n 1 'ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15'

我桌面上的输出如下。

Every 1.0s: ps -e -o pid,uname,cmd,pmem,pcpu --... Sun Dec 1 18:16:08 2013

PID USER CMD %MEM %CPU

3800 1000 /opt/google/chrome/chrome - 4.6 1.4

7492 1000 /opt/google/chrome/chrome - 2.7 1.4

3150 1000 /opt/google/chrome/chrome 2.7 2.5

3824 1000 /opt/google/chrome/chrome - 2.6 0.6

3936 1000 /opt/google/chrome/chrome - 2.4 1.6

2936 1000 /usr/bin/plasma-desktop 2.3 0.2

9666 1000 /opt/google/chrome/chrome - 2.1 0.8

3842 1000 /opt/google/chrome/chrome - 2.1 0.8

4739 1000 /opt/google/chrome/chrome - 1.8 1.0

3930 1000 /opt/google/chrome/chrome - 1.7 1.0

3911 1000 /opt/google/chrome/chrome - 1.6 0.6

3645 1000 /opt/google/chrome/chrome - 1.5 0.4

3677 1000 /opt/google/chrome/chrome - 1.5 0.4

3639 1000 /opt/google/chrome/chrome - 1.4 0.4

输出会每秒刷新状态,但是这其实很top不同。你会发现top/htop命令的输出相比上面的ps命令刷新得更频繁。

这是因为top输出是结合了cup使用值和内存使用值后的排序值。但是上面的ps命令是一个更简单的行为的排序,每次获取一列(像学校的数学),因此它不会像top那样快速更新。0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值