进程监视
作为系统管理员,您可以管理进程。
ps 命令是在系统中观察进程的主要工具。 ps 命令的大部分标志属于以下两个类别之一:
- 指定哪些类型的进程要包含在输出中的标志
- 指定将要显示那些进程的哪些属性的标志
用于系统管理的 ps 的最广泛使用的变体是:
| 项 | 描述 |
|---|---|
| ps -ef | 列出所有非内核的进程,以及用户标识、进程标识、最近 CPU 使用情况、总的 CPU 使用情况以及启动该进程的命令(包括其参数)。 |
| ps -fu UserID | 列出由 UserID 拥有的所有进程,以及进程标识、最近 CPU 使用情况、总的 CPU 使用情况以及启动该进程的命令(包括其参数)。 |
要标识 CPU 时间最多的当前用户,可以输入:
ps -ef | egrep -v "STIME|$LOGNAME" | sort +3 -r | head -n 15此命令按降序列出那些非您拥有的 15 个最消耗 CPU 的进程。
对于更多专门的使用,以下两个表意在通过总结标志的效果来简化选择 ps 标志的任务。
指定进程的标志
| -一个 | 一 | -d | -e | -G -g | -k | -p | -t | -U -u | a | g | t | X | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 所有进程 | Y | - | - | - | - | - | - | - | - | - | Y | - | - |
| 非进程组引导符且不与终端关联 | - | Y | - | - | - | - | - | - | - | - | - | - | - |
| 非进程组引导符 | - | - | Y | - | - | - | - | - | - | - | - | - | - |
| 非内核进程 | - | - | - | Y | - | - | - | - | - | - | - | - | - |
| 指定的进程组成员 | - | - | - | - | Y | - | - | - | - | - | - | - | - |
| 内核进程 | - | - | - | - | - | Y | - | - | - | - | - | - | - |
| 那些进程编号列表中指定的进程 | - | - | - | - | - | - | Y | - | - | - | - | - | - |
| 那些与列表中的 tty 关联的进程 | - | - | - | - | - | - | - | Y(n 个 tty) | - | - | - | Y(1 个 tty) | - |
| 指定的用户进程 | - | - | - | - | - | - | - | - | Y | - | - | - | - |
| 具有终端的进程 | - | - | - | - | - | - | - | - | - | Y | - | - | - |
| 与 tty 无关的进程 | - | - | - | - | - | - | - | - | - | - | - | - | Y |
列选择的标志
| Default1 | -f | -l | -U -u | Default2 | e | L | 请 | u | v | |
|---|---|---|---|---|---|---|---|---|---|---|
| PID | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| TTY | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| 时间 | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| CMD | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| USER | - | Y | - | - | - | - | - | - | Y | - |
| UID | - | - | Y | Y | - | - | Y | - | - | - |
| PPID | - | Y | Y | - | - | - | Y | - | - | - |
| C | - | Y | Y | - | - | - | Y | - | - | - |
| STIME | - | Y | - | - | - | - | - | - | Y | - |
| F | - | - | Y | - | - | - | - | - | - | - |
| 统计信息 | - | - | Y | - | Y | Y | Y | Y | Y | Y |
| PIR | - | - | Y | - | - | - | Y | - | - | - |
| NI/NICE | - | - | Y | - | - | - | Y | - | - | - |
| ADDR | - | - | Y | - | - | - | Y | - | - | - |
| 大小 | - | - | - | - | - | - | - | - | Y | - |
| SZ | - | Y | - | - | - | Y | - | Y | - | - |
| WCHAN | - | - | Y | - | - | - | Y | - | - | - |
| RSS | - | - | - | - | - | - | Y | - | Y | Y |
| SSIZ | - | - | - | - | - | - | - | Y | - | - |
| CPU 百分比 | - | - | - | - | - | - | - | - | Y | Y |
| %MEM | - | - | - | - | - | - | - | - | Y | Y |
| PGIN | - | - | - | - | - | - | - | - | - | Y |
| LIM | - | - | - | - | - | - | - | - | - | Y |
| TSIZ | - | - | - | - | - | - | - | - | - | Y |
| TRS | - | - | - | - | - | - | - | - | - | Y |
| 环境(跟在命令后) | - | - | - | - | - | Y | - | - | - | - |
如果给出的 ps 不具有标志或具有以减号开头的进程指定的标志,那么显示的列是为“缺省值 1”显示的那些列。 如果给出的命令具有不以减号开头的进程指定的标志,那么显示“缺省值 2”列。 -u 或 -U 标志既是进程指定的标志,又是列选择的标志。
以下是列内容的简短描述:
| 项 | 描述 |
|---|---|
| PID | 进程标识 |
| TTY | 与进程关联的终端或伪终端 |
| 时间 | 消耗的累积 CPU 时间,以分和秒计 |
| CMD | 进程正在运行的命令 |
| USER | 进程所属的用户的登录名 |
| UID | 进程所属的用户的数字用户标识 |
| PPID | 此进程的父进程的标识 |
| C | 最近使用的 CPU 时间 |
| STIME | 如果少于 24 小时,这表示进程启动的时间。 否则表示进程启动的日期 |
| F | 八个字符的十六进制值,描述与进程关联的标志(请参阅 ps 命令的详细描述) |
| 统计信息 | 进程的状态(请参阅 ps 命令的详细描述) |
| PRI | 进程的当前优先级值 |
| NI/NICE | 进程的 nice 值 |
| ADDR | 进程堆栈的段号 |
| 大小 | (-v 标志)进程的数据段的虚拟大小(以千字节计) |
| SZ | (-l 和 l 标志)进程的核心映像的大小,以千字节计。 |
| WCHAN | 进程正在其上等候的事件 |
| RSS | 内存中的工作段页和代码段页的数量的和乘以 4 |
| SSIZ | 内核堆栈的大小 |
| CPU 百分比 | 从进程启动时起所使用的 CPU 的时间的百分比 |
| %MEM | 名义上由进程使用的真正内存的百分比,该测量值和任何其他内存统计信息无关 |
| PGIN | 由缺页故障导致的页面插入数。 由于所有 I/O 都归类为缺页故障,因此这基本上是 I/O 量的量度值 |
| LIM | 始终为 xx |
| TSIZ | 可执行文件的文本段的大小 |
| TRS | 代码段页的数量乘以 4 |
| 环境 | 进程的所有环境变量的值 |