系统管理员工具包: 进程管理技巧
2008-11-11 08:13:38 来源:WEB开发网这些选项存在的问题是,尽管它们显示了更多的信息,但这些信息并不总是特别有用,或者在寻找某个特定进程时包含了不希望看到的扰乱显示的信息。
幸运的是,所有版本的 ps 还包括了指定要显示的列的功能。可以广泛地使用这种命令,不管是仅提取所需要的信息,还是在异类环境中使用它来创造标准化的跨不同 UNIX 环境的输出。
要使用这一特性,可使用 -o 命令行选项,并列出要显示的列,以逗号做列的分隔符。尽管可选择的列的范围有一些差别,但在不同的 UNIX 版本中,大部分列都是标准的。例如,所有变种中都有 pid、ppid(父进程 ID)、command、RSS(驻留集大小或内存使用情况)以及 priority。
使用时,可以用 -o 来选择列及其显示顺序。例如,要获取 pid、ppid 和 commond,在 BSD 中可以使用 -opid,ppid,command,如清单 7 所示,或者在 SVR4 中使用 -opid,ppid,comm,如清单 8 所示。
清单 7. 在 BSD 中选择特定的列
$ ps -o pid,ppid,command
PID PPID COMMAND
391 332 /bin/bash
9165 391 emacs
清单 8. 在 SVR4 中选择特定的列
$ ps -opid,ppid,comm
PID PPID COMMAND
555 552 -sh
622 555 ps
选择了想要的列后,可能会选择信息的排列顺序。ps 的缺省设置是根据进程 ID 来排列进程列表,但是这样可能会隐藏正在查找的信息。当查找内存饥饿的进程时,按内存使用量来排列显示结果比按进程 ID 更加有用。
有些 ps 变种通过使用命令行选项来支持这种情况。BSD 变种中使用 -m 选项来按内存使用情况排序,或者使用 -r 来按 CPU 使用情况排序。许多 SVR4 变种没有该问题的明确解决办法,但是可以在所有环境中通过将 ps 和 sort 进行组合来生成类似的结果。例如,要获取按 CPU 使用量排序的进程列表,可以在 BSD 中使用清单 9 所示的命令。
更多精彩
赞助商链接