(2)查看进程
(2.1)获取进程信息的命令
通过命令可以查看进程状态,获取有关进程的相关信息。例如:
Ø 显示哪些进程正在执行和执行的状态。
Ø 进程是否结束、进程有没有僵死。
Ø 哪些进程占用了过多的系统资源等。
下表中列出了常用的获取进程信息的命令。
命 令 | 说 明 |
ps | 查看进程的详细信息 |
pgrep | 通过模式(使用与grep相同的匹配模式)匹配查找进程的PID |
pidof | 通过进程名获取进程的PID |
(2.2)ps命令
在Linux中,可使用ps命令对进程进行查看。ps是一个功能非常强大的进程查看命令。
使用该命令使用户可以确定有哪些进程正在执行和执行的状态、进程是否结束、进程有没有僵 死、哪些进程占用了过多的系统资源等。总之,大部分信息都可以通过运行ps命令来获得。下面介绍ps命令的格式和常用选项。ps 命令的格式如下:
$ ps [选项]
由于ps命令的功能相当强大,所以该命令有大量的选项参数,这里只介绍几个最常用的选项,如下表所示。
ps 命令的常用选项 | |||
选项 | 说 明 | 选项 | 说明 |
a | 显示所有进程 | 0-H | 显示进程树,等价于--forest |
e | 在命令后显示环境变量 | w/-w | 宽行输出。通常用于显示完整的命令行 |
u | 显示用户名和启动时间等信息 | -e | 显示所有进程,等价于--A |
x | 显示没有控制终端的进程 | -f | 完全显示。增加用户名、PPID、进程起时间 |
,o/-o<list> | 由用户自定义输出列,list是一个以逗号间隔的输出项列表 | --sort<order> | 指定按哪/哪些列排序,order格式为:[ |-]key[,[ |-]key[,…]] |
下表中列出了ps命令输出的重要信息的含义。
ps命令输出的重要信息的含义 | |||
输出项 | 说明 | 输出项 | 说明 |
PID | 进程号 | TIME | 进程自从启动以来占用CPU的总时间 |
PPID | 父进程的进程号 | USER | 用户名 |
TTY | 进程从哪个终端启动 | %CPU | 占用CPU时间与总时间的百分比 |
STAT | 进程当前状态 | %MEM | 占用内存与系统内存总量的百分比 |
START | 进程开始执行的时间 | SIZE | 进程代码大小 数据大小 栈空间大小,单位KB |
VSZ | 进程占用的虚拟内存空间,单位KB | COMMANDICMD | 进程的命令名 |
RSS | 进程所占用的内存的空间,单位KB |
其中,在进程状态(STAT) -栏中表示状态的字符含义如下表所示。
进程状态的字符含义 | |
状态 | 说 明 |
R | 进程正在执行中(进程排在执行队列里,随时都会被执行) |
S | 进程处于睡眠状态(sleeping) |
T | 追踪或停止 |
Z | 僵尸进程(zombie),进程已经被终止,但其父进程并不知道,没有妥善处理 |
W | 进程没有固定的pages |
< | 高优先级的进程 |
N | 低优先级的进程 |
(2.3)进程显示命令举例
下面给出一些显示进程信息的例子。
操作步骤3.13显示进程的例子
//显示出当前用户在Shell下所运行的进程信息
$ps
//只查看用户osmond的进程信息
# ps -u osmond
//列出系统中正在运行的所有进程的详细信息
$ ps aux
$ ps -ef
//想看清所运行的进程的完整命令行,可以使用w参数
$ ps auxw
$ ps efw
//显示系统进程树
$ ps axf
$ ps -efH
//显示指定进程的详细信息
# ps aux|grep httpd
# ps -fp $(pgrep -d, -x httpd)
//因为ps命令的-p参数需要一个以逗号间隔的PID列表,所以
//命令替换中的pgrep命令使用参数-d,表示以逗号间隔进行输出而非默认的换行
//命令替换中pgrep的参数-x表示精确匹配
# pgrep -x httpd |xargs ps -fp
// xargs命令的含义是将管道获取的输入作为其后ps -fp 命令的参数
//对指定的输出项进行排序
$ ps -ef --sort user,-time
$ ps aux --sort -pcpu
$ ps aux --sort -pmem
//列出httpd进程的PID
# ps -C httpd -o pid
# pidof httpd
# pgrep httpd
//查找符合条件的进程PID
# pgrep -u root sshd //列出root用户运行的sshd进程的PID
# pgrep -u root,daemon //列出root用户或daemon用户运行的所有进程的PID
# pgrep -G student //列出student组运行的所有进程的PID
//注意pgrep中精确匹配与默认匹配的区别
# pgrep http
# pgrep -x http
# pgrep -x httpd
注意:
不加“-1”参数的pgrep命令的输出仅是符合条件进程的PID。若要显示这些进程更详细的信息,还需要使用如下形式之一:
$ ps -fp $(pgrep -d, XXXXX)。
$ pgrep -x XXXXX |xargs ps -fp。