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
  • 相关阅读:
    抓取csdn上的各类别的文章 (制作csdn app 二)
    Android 使用Fragment,ViewPagerIndicator 制作csdn app主要框架
    MongoDB基本使用
    MongoDB之DBref(关联插入,查询,删除) 实例深入
    nginx 1.4.7 发送日志到rsyslog
    nginx 编译参数
    nginx 编译参数
    rsyslog 传输日志
    rsyslog 传输日志
    rsyslog 直接读取日志,当日志截断后,不会继续发送
  • 原文地址:https://www.cnblogs.com/rsky/p/4885906.html
Copyright © 2011-2022 走看看