系统管理员工具包: 进程管理技巧
2008-11-11 08:13:38 来源:WEB开发网清单 9. 在 BSD 中跟踪 CPU 使用情况
$ ps -A -o pid,%cpu,command|sort -n +1
...
358 0.1 ftp
11425 0.1 /bin/bash
28684 0.3 trivial-rewrite -n rewrite -t unix -u
356 0.4 ssh
354 0.5 as
23988 1.1 emacs
136 14.6 cc1plus
26306 23.6 cpp
在 SVR4 中,需要将 %cpu 改为 pcpu,而该命令在其他方面是相同的(请参见清单 10)。
清单 10. 在 SVR4 中跟踪 CPU 使用情况
$ ps -e -opid,pcpu,comm|sort -n +1
...
3 0.1 fsflush
555 0.1 -sh
627 0.2 sort
628 0.2 ps
该命令链是可行的,因为已经指定了进程列表的排列顺序,因此可以按照这些列进行排序以获取真正想要的信息。如果想使用不同的标准来查找进程,还有其他的可用方案。
列出特定进程
显然,在获取了正在运行的进程列表之后,也许希望列出特定的进程。一个显而易见的方法就是将 ps 的输出与 grep 结合起来,以提取所需的信息。在一些 UNIX 变种中,可以通过一些特定的实用程序来完成这项工作,例如 pgrep,但是如果要查找一些特定的命令,使用 grep 也同样是很有效的。
$ ps -ef|grep bash
ps 命令还支持根据更明确的标准来显示进程,例如用户 ID、父进程或控制终端。例如,-U 命令行选项限定了进程列表只显示指定用户名的进程。例如,要显示当前属于 root 用户的进程,请参阅清单 11。
清单 11. 根据用户列出进程
$ ps -U root
PID TTY TIME CMD
0 ? 15:24 sched
1 ? 0:00 init
2 ? 0:00 pageout
3 ? 0:02 fsflush
308 ? 0:00 devfsadm
7 ? 0:06 svc.star
...
552 ? 0:00 in.telne
527 ? 0:00 dmispd
629 pts/1 0:00 ps
548 ? 0:01 snmpd
更多精彩
赞助商链接