WEB开发网
开发学院操作系统Linux/Unix 系统管理员工具包: 进程管理技巧 阅读

系统管理员工具包: 进程管理技巧

 2008-11-11 08:13:38 来源:WEB开发网   
核心提示: 清单 9. 在 BSD 中跟踪 CPU 使用情况$ ps -A -o pid,%cpu,command|sort -n +1...358 0.1 ftp11425 0.1 /bin/bash28684 0.3 trivial-rewrite -n rewrite -t unix -u356

清单 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

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:系统 管理员 工具包

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接