zoukankan      html  css  js  c++  java
  • Linux学习-ps aux指令

    如果直接用ps命令,会显示所有进程的状态,通常结合grep命令查看某进程的状态。如果想对进程时间监控,应该用 top 工具。下面主要介绍下ps指令。

    linux进程状态

    在Linux中,进程存在5中状态

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

    ps常用命令

    下面是常用的ps指令,查看进程状态
    (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的信息
    (15)ps au 显示终端下用户的所有程序

    运行实例

    实例一:ps -lA | more

    $ ps -lA |more
    F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
    4 S     0     1     0  0  80   0 - 13212 ep_pol ?        00:02:16 systemd
    1 S     0     2     0  0  80   0 -     0 kthrea ?        00:00:00 kthreadd
    1 S     0     3     2  0  80   0 -     0 smpboo ?        00:00:01 ksoftirqd/0
    1 S     0     5     2  0  60 -20 -     0 worker ?        00:00:00 kworker/0:0H
    1 S     0     7     2  0 -40   - -     0 smpboo ?        00:00:05 migration/0
    1 S     0     8     2  0  80   0 -     0 rcu_gp ?        00:00:00 rcu_bh
    1 S     0     9     2  0  80   0 -     0 rcu_no ?        00:00:00 rcuob/0
    1 S     0    10     2  0  80   0 -     0 rcu_no ?        00:00:00 rcuob/1
    1 R     0    11     2  0  80   0 -     0 ?      ?        00:10:41 rcu_sched
    1 S     0    12     2  0  80   0 -     0 rcu_no ?        00:04:07 rcuos/0
    1 S     0    13     2  0  80   0 -     0 rcu_no ?        00:06:51 rcuos/1
    5 S     0    14     2  0 -40   - -     0 smpboo ?        00:00:16 watchdog/0
    5 S     0    15     2  0 -40   - -     0 smpboo ?        00:00:15 

    相关信息解释:

    F  :进程的标志(flag),4表示用户为超级用户
    S  :进程的状态(stat)
    PID:进程的ID
    C  :CPU使用资源的百分比
    PRI:priority(优先级)的缩写,
    NI :Nice值,
    ADDR:核心功能,指出该进程在內存的那一部分,如果是运行的进程,一般都是“-”
    SZ :用掉的内存的大小
    WCHAN:当前进程是否正在运行,若为“-”表示正在进行
    TTY :登陆者的终端位置
    TIME:用掉的CPU的时间
    CMD :所执行的指令

    实例二:ps aux |more

    # ps aux |more
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.0  52848  5616 ?        Ss   7月03   2:16 /usr/lib/systemd/systemd --switched-root --syst
    em --deserialize 23
    root         2  0.0  0.0      0     0 ?        S    7月03   0:00 [kthreadd]
    root         3  0.0  0.0      0     0 ?        S    7月03   0:01 [ksoftirqd/0]
    root         5  0.0  0.0      0     0 ?        S<   7月03   0:00 [kworker/0:0H]
    root         7  0.0  0.0      0     0 ?        S    7月03   0:05 [migration/0]
    root         8  0.0  0.0      0     0 ?        S    7月03   0:00 [rcu_bh]
    root         9  0.0  0.0      0     0 ?        S    7月03   0:00 [rcuob/0]
    root        10  0.0  0.0      0     0 ?        S    7月03   0:00 [rcuob/1]
    root        11  0.0  0.0      0     0 ?        S    7月03  10:41 [rcu_sched]
    root        12  0.0  0.0      0     0 ?        R    7月03   4:07 [rcuos/0]
    root        13  0.0  0.0      0     0 ?        S    7月03   6:51 [rcuos/1]
    root        14  0.0  0.0      0     0 ?        S    7月03   0:16 [watchdog/0]
    root        15  0.0  0.0      0     0 ?        S    7月03   0:15 [watchdog/1]
    root        16  0.0  0.0      0     0 ?        S    7月03   0:06 [migration/1]
    root        17  0.0  0.0      0     0 ?        S    7月03   0:23 [ksoftirqd/1]
    root        19  0.0  0.0      0     0 ?        S<   7月03   0:00 [kworker/1:0H]
    root        20  0.0  0.0      0     0 ?        S<   7月03   0:00 [khelper]
    root        21  0.0  0.0      0     0 ?        S    7月03   0:00 [kdevtmpfs]

    参数解释说明:

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

    实例三:ps au

    可显示当前用户的任务进程

    [liudiwei@master bin]$ ps au
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root      2333  0.0  0.0 116568  2296 tty1     Ss+  7月03   0:00 -bash
    liudiwei  5589  0.0  0.0 116876  3544 pts/0    Ss+  8月01   0:02 -bash
    liudiwei  6042  0.0  0.0 123356  1328 pts/2    R+   22:31   0:00 ps au
    liudiwei  9896 67.1 13.5 5547340 3320412 pts/0 R    10:58 464:55 python cross_validation.py
    root     13757  0.0  0.0 116700  3168 pts/3    Ss+  21:01   0:00 -bash
    liudiwei 15102 29.2  6.5 5551488 1599236 pts/0 R    17:10  93:41 python submodulary.py 1
    liudiwei 15578  0.0  0.0 116800  3448 pts/2    Ss   17:12   0:00 -bash
    liudiwei 15777 28.9  6.4 5545876 1584784 pts/2 R    17:12  92:14 python submodulary.py 7
    liudiwei 15791 28.8  6.4 5545900 1578696 pts/2 R    17:12  91:54 python submodulary.py 8
    liudiwei 15860 29.0  6.4 5536464 1582700 pts/2 R    17:13  92:14 python submodulary.py 9
    liudiwei 15875 28.9  6.4 5542372 1584640 pts/2 R    17:13  92:04 python submodulary.py 10
    

    STAT状态位常見的状态字符


    D 无法中断的休眠状态(通常 IO 的进程);
    R 正在运行可中在队列中可过行的;
    S 处于休眠状态;
    T 停止或被追踪;
    W 进入内存交换  (从内核2.6开始无效);
    X 死掉的进程   (基本很少見);
    Z 僵尸进程;
    < 优先级高的进程
    N 优先级较低的进程
    L 有些页被锁进内存;
    s 进程的领导者(在它之下有子进程);
    l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
    + 位于后台的进程组;
  • 相关阅读:
    leetcode 78. 子集 JAVA
    leetcode 91. 解码方法 JAVA
    leetcode 75. 颜色分类 JAVA
    leetcode 74 搜索二维矩阵 java
    leetcode 84. 柱状图中最大的矩形 JAVA
    last occurance
    first occurance
    classical binary search
    LC.234.Palindrome Linked List
    LC.142. Linked List Cycle II
  • 原文地址:https://www.cnblogs.com/xlc114/p/4698588.html
Copyright © 2011-2022 走看看