Linux中的ps命令用来列出系统中当前运行的那些进程,查看它们的运行状态,占用的资源
linux上进程有5种状态
ps工具标识进程的5种状态码
代码 | 意义 |
---|---|
D | 不可中断 |
R | 运行 |
S | 中断 |
T | 停止 |
Z | 僵死 |
ps [参数]
参数 | 解释 |
---|---|
a | 显示所有进程 |
-a | 显示同一终端下的所有程序 |
-A | 显示所有进程 |
c | 显示进程的真实名称 |
-N | 反向选择 |
-e | 等于“-A” |
e | 显示环境变量 |
f | 显示程序间的关系 |
-H | 显示树状结构 |
r | 显示当前终端的进程 |
T | 显示当前终端的所有程序 |
u | 指定用户的所有进程 |
-au | 显示较详细的资讯 |
-aux | 显示所有包含其他使用者的行程 |
-C<命令> | 列出指定命令的状况 |
–lines<行数> | 每页显示的行数 |
–width<字符数> | 每页显示的字符数 |
–help | 显示帮助信息 |
–version | 显示版本显示 |
命令 | 用途 |
---|---|
ps -A | 显示所有进程信息 |
ps -u | root 显示指定用户信息 |
ps -ef | 显示所有进程信息和命令行 |
ps -ef|grep ssh | 查找特定进程 |
ps -l | 将目前属于你这次登入的 PID 与相关信息列示出来 |
ps aux | 列出目前所有的正在内存当中的程序 |
ps -axjf | 列出程序树式的程序显示 |
ps -aux > 1.txt | 把所有进程显示出来,并输出到1.txt文件 |
ps -aux |more | 可以用 | 和more连接起来分页查看 |
ps -o pid,ppid,pgrp,session,tpgid,comm | 输出指定的字段 |
ps -l
命令执行后,输出的结果中包含一些字段,下表解释了字段含义
字段 | 含义 |
---|---|
F | 代表这个程序的旗标 (flag), 4 代表使用者为 superuser |
S | 代表这个程序的状态 (STAT) |
UID | 程序被该 UID 所拥有 |
PID | 就是这个程序的 ID |
PPID | 则是其上级父程序的ID |
C | CPU 使用的资源百分比 |
PRI | 这个是 Priority (优先执行序) 的缩写,详细后面介绍 |
NI | 这个是 Nice 值,在下一小节我们会持续介绍 |
ADDR | 这个是 kernel function,指出该程序在内存的那个部分。如果是个 running的程序,一般就是 “-“ |
SZ | 使用掉的内存大小 |
WCHAN | 目前这个程序是否正在运作当中,若为 - 表示正在运作 |
TTY | 登入者的终端机位置 |
TIME | 使用掉的 CPU 时间 |
CMD | 所下达的指令为何 |
在预设的情况下, ps 仅会列出与目前所在的 bash shell 有关的 PID 而已,所以, 当我使用 ps -l 的时候,只有三个 PID。
ps -aux
命令执行后,输出的结果中包含一些字段,下表解释了字段含义
字段 | 含义 |
---|---|
USER | 该进程属于那个使用者账号的 |
PID | 该进程的号码 |
%CPU | 该进程使用掉的 CPU 资源百分比 |
%MEM | 该进程所占用的物理内存百分比 |
VSZ | 该进程使用掉的虚拟内存量 |
RSS | 该进程占用的固定的内存量 |
TTY | 该进程是在哪个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。 |
STAT | 该进程目前的状态 |
R | 该进程目前正在运作 |
S | 该进程目前正在睡眠当中 |
T | 该进程目前正在侦测或者是停止了 |
Z | 该进程应该已经终止,但是其父程序却无法正常的终止他,造成僵死程序的状态 |
START | 该进程被触发启动的时间 |
TIME | 该进程实际使用 CPU 运作的时间 |
COMMAND | 该进程的实际指令 |