ps aux指令詳解

linux上进程有5种状态:
1. 运行(正在运行或在运行队列中等待)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

 

1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。
2)ps -A   显示所有程序。
3)ps c    列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4)ps -e  此参数的效果和指定"A"参数相同。
5)ps e   列出程序时,显示每个程序所使用的环境变量。
6)ps f    用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps -H    显示树状结构,表示程序间的相互关系。
8)ps -N   显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps s     采用程序信号的格式显示程序状况。
10)ps S     列出程序时,包括已中断的子程序资料。
11)ps -t <终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
12)ps u   以用户为主的格式来显示程序状况。
13)ps x   显示所有程序,不以终端机来区分。

14)ps -l     较长,较详细的显示该PID的信息

 

# ps -lA |more

F S   UID   PID  PPID  C PRI  NI ADDR SZ   WCHAN     TTY            TIME          CMD
4 S     0     1     0        0  76   0     -  1193 109952       ?             00:00:03 init
1 S     0     2     1        0 -40   -      -     0    migrat        ?             00:00:03 migration/0
1 S     0     3     1        0  94  19    -     0     ksofti         ?             00:00:00 ksoftirqd/0
1 S     0     4     1        0 -40   -      -     0    migrat        ?             00:00:02 migration/1
1 S     0     5     1        0  94  19    -     0    ksofti          ?             00:00:00 ksoftirqd/1
1 S     0     6     1        0 -40   -      -     0    migrat        ?             00:00:02 migration/2
1 S     0     7     1        0  94  19    -     0    ksofti          ?             00:00:00 ksoftirqd/2

 

 相关信息的意义:
F  进程的志(flag),
4表示用户為超级用户
S  进程的状态(stat),各STAT的意义见下文
PID   进程的ID
C   CPU使用资源的百分比
PRI   priority(优先级)的缩写,
NI     Nice值,
ADDR  核心功能,指出该进程在内存的那一部分,如果是运行的进程,一般都是“-”
SZ     用掉的内存的大小
WCHAN   当前进程是否正在运行,若為“-”表示正在运行

TTY     登陆者的终端位置
TIME   用掉的CPU的时间
CMD    所执行的指令

# ps aux |more


进程的属主  进程的ID                                                                                                                   命令的名称和参数
USER        PID %CPU %MEM   VSZ  RSS  TTY                   STAT     START   TIME     COMMAND
root            1        0.0  0.0          4772  564   ?                         S        Sep22     0:03     init [3]
root            2        0.0  0.0           0    0          ?                         S        Sep22     0:03     [migration/0]
root            3        0.0  0.0          0    0           ?                         SN      Sep22     0:00     [ksoftirqd/0]
root            4        0.0  0.0          0    0           ?                         S        Sep22     0:02     [migration/1]
root            5        0.0  0.0          0    0           ?                         SN      Sep22     0:00     [ksoftirqd/1]
root            6        0.0  0.0          0    0           ?                         Ss+     Sep22     0:02     [migration/2]
root            7        0.0  0.0          0    0          ?                         SN      Sep22      0:00     [ksoftirqd/2]
root           8        0.0  0.0           0    0           ?                         S        Sep22      0:00     [migration/3]
root           9        0.0  0.0           0    0          ?                         SN      Sep22      0:00     [ksoftirqd/3]
root          10       0.0  0.0           0    0          ?                         S<      Sep22       0:00     [migration/4]


参数详解:


USER           进程的属主;

PID               进程的ID;
PPID            父进程;
%CPU         进程占用的CPU百分比;
%MEM        占用内存的百分比;
NI                进程的NICE值,数值大,表示较少占用CPU时间;
VSZ            该进程使用的虚拟内存量(KB);
RSS      该进程占用的固定内存量(KB)(驻留中页的数量);
TTY        该进程在哪个终端上运行(登陆者的终端位置),若与终端无关,则显示(?)。若为pts/0等,则表示由网络连接主机
WCHAN      当前该进程是否正在进行,若为-表示正在进行;
START       该进程被触发启动时间;
TIME           该进程实际使用CPU运行的时间;

COMMAND   命令的名称和参数;


STAT状态位常见的状态字符



D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行可中在队列中可过行的;
S 处于休眠状态;
T 停止或被追踪;
W 进入内存交换  (从内核2.6开始无效);
X 死掉的进程   (基本很少见);
Z 僵尸进程;
< 优先级高的进程
N 优先级较低的进程
L 有些页被锁进内存;
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);

+ 位于后台的进程组;


转载自:http://blog.youkuaiyun.com/hanner_cheung/article/details/6081440

### 关于 `ps aux` 命令的详解 #### 定义与功能 `ps aux` 是 Linux 中用于显示当前运行进程状态的强大工具之一。此命令提供了有关系统中所有进程的详尽信息,包括但不限于用户、CPU 使用率以及内存消耗等细节[^2]。 #### 参数解析 - **a**: 显示所有用户的进程,不仅限于拥有终端会话的那些。 - **u**: 提供面向用户的格式化输出,展示更详细的每进程信息,比如用户名而非 UID。 - **x**: 列出无控制终端的进程,这通常意味着后台服务或守护程序。 组合起来使用时 (`aux`) ,这些标志使得 `ps` 可以报告系统上的每一个进程,无论它们是否有对应的登录 shell 或者是否由特定用户启动[^5]。 #### 输出字段说明 当执行 `ps aux` 后,将会看到如下列的数据: | 字段 | 描述 | |--| | USER | 执行该进程的有效用户名 | | PID | 进程ID | | %CPU | 自进程启动以来所使用的 CPU 时间百分比 | | %MEM | 物理 RAM 占用比例 | | VSZ | 虚拟内存大小 (KB) | | RSS | 实际驻留集尺寸,即实际占用物理内存数(KB) | | TTY | 终端名称(如果有的话),问号表示没有关联到任何TTY | | STAT | 进程状态代码 | | START | 开始时间 | | TIME | 总累计 CPU 时间 | | COMMAND | 启动命令及其参数 | 例如,在一个典型的输出片段里可以看到这样的记录: ```bash USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 22648 3476 ? Ss Jan29 0:02 /sbin/init splash ``` 这里展示了根用户(`root`)下的初始化进程(`/sbin/init splash`)的相关属性。 #### 应用实例 为了过滤并定位某个具体的应用程序或脚本,常常会在 `ps aux` 结果后面加上管道符和 `grep` 来筛选感兴趣的内容。例如查找名为 `./update_stock` 的进程可以这样做: ```bash ps aux | grep './update_stock' ``` 这条指令将返回所有匹配项,并且由于 `grep` 自身也会作为一个新近产生的子进程被列出,因此一般还会附加额外条件排除掉不必要的结果,像这样: ```bash ps aux | grep '[u]pdate_stock' ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值