zoukankan      html  css  js  c++  java
  • [Linux] ps命令详解

    Linux中的ps (Process Status)命令用来列出系统中当前运行的那些进程。

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

    ps工具标识进程的5种状态码:
        D 不可中断 uninterruptible sleep (usually IO)
        R 运行 runnable (on run queue)
        S 中断 sleeping
        T 停止 traced or stopped
        Z 僵死 a defunct (”zombie”) process

    1.命令说明
        名称:ps
        使用权限:所有使用者
        使用方式:ps [options] [--help]
        说明:显示瞬间行程 (process) 的动态

    2.常用命令参数

    -a 显示同一终端下的所有程序
    -A 显示所有进程 (等价于-e)
    -w 显示加宽可以显示较多的资讯
    
    -au 显示较详细的资讯
    -aux 显示所有包含其他使用者的进程
    
    c  显示进程的真实名称
    -C<命令> 列出指定命令的状况  显示一个名为getty的进程的信息 ps -C getty
    
    -d 显示所有进程,但省略所有的会话引线(utility)
    
    -e 等于“-A”
    e  显示环境变量
    
    -f 全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
    f  显示程序间的关系(树形结构  pstree命令也是显示树形结构)
    
    x 显示所有程序,不以终端机来区分。
    -x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)
    
    -N 反向选择
    
    -H 显示树状结构
    r  显示当前终端的进程
    T  显示当前终端的所有程序
    u  指定用户的所有进程
    
    -t<终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
    -p pid 父进程id
    -u uid or username 选择有效的用户id或者是用户名
    -g gid or groupname 显示组的所有进程。
    
    
    -l 长格式(有F,wchan,C 等字段)
    -L 参数,后面加上特定的PID 显示特定进程的线程
    
    --lines<行数> 每页显示的行数
    --width<字符数> 每页显示的字符数
    --help 显示帮助信息
    --version 显示版本显示
    --sort -pcpu 根据pcpu排序

    3.ps 显示列的意义

    [root@localhost cc]# ps -l
    
    F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
    4 S     0 17398 17394  0  75   0 - 16543 wait   pts/0    00:00:00 bash
    4 R     0 17469 17398  0  77   0 - 15877 -      pts/0    00:00:00 ps
    
    
    F 代表这个程序的旗标 (flag), 4 代表使用者为 super user
    S 代表这个程序的状态 (STAT),关于各 STAT 的意义将在内文介绍
    UID 程序被该 UID 所拥有
    PID 就是这个程序的 ID !
    PPID 则是其上级父程序的ID
    C CPU 使用的资源百分比
    PRI 这个是 Priority (优先执行序) 的缩写,详细后面介绍
    NI 这个是 Nice 值,在下一小节我们会持续介绍
    ADDR 这个是 kernel function,指出该程序在内存的那个部分。如果是个 running的程序,一般就是 "-"
    SZ 使用掉的内存大小
    WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作
    TTY 登入者的终端机位置
    TIME 使用掉的 CPU 时间。
    CMD 所下达的指令为何

    4. 范例

    1. 用 | 管道和 more 连接起来分页查看
    
        命令:ps -aux |more
    
    2. 把所有进程显示出来,并输出到ps.txt文件
    
        命令:ps -aux > ps.txt
    
    3. 输出指定的字段
    
        命令: ps -o pid,ppid,pgrp,tpgid,comm 
    
    
    4. 结合watch命令 实时显示系统的进程状态
    
        命令: watch -n 1ps -aux --sort -pmem, -pcpu | head 20
  • 相关阅读:
    【leetcode】106. Construct Binary Tree from Inorder and Postorder Traversal
    【leetcode】105. Construct Binary Tree from Preorder and Inorder Traversal
    【leetcode】236. Lowest Common Ancestor of a Binary Tree
    【leetcode】235. Lowest Common Ancestor of a Binary Search Tree
    【leetcode】352. Data Stream as Disjoint Intervals
    【leetcode】897. Increasing Order Search Tree
    【leetcode】900. RLE Iterator
    BEC listen and translation exercise 26
    BEC listen and translation exercise 25
    BEC listen and translation exercise 24
  • 原文地址:https://www.cnblogs.com/rsky/p/4885906.html
Copyright © 2011-2022 走看看