zoukankan      html  css  js  c++  java
  • Linux下PS命令详解

    要对系统中进程进行监测控制,查看状态,内存,CPU的使用情况,使用命令:/bin/ps

    (1)         ps :是显示瞬间进程的状态,并不动态连续;

    (2)         top:如果想对进程运行时间监控,应该用 top 命令;

    (3)         kill 用于杀死进程或者给进程发送信号;

    (4)        查看文章最后的man手册,可以查看ps的每项输出的含义,to find: STANDARD FORMAT SPECIFIERS

    ===================================ps 的参数说明=============================

    l 长格式输出;

    u 按用户名和启动时间的顺序来显示进程;

    j 用任务格式来显示进程;

    f 用树形格式来显示进程;

    a 显示所有用户的所有进程(包括其它用户);

    x 显示无控制终端的进程;

    r 显示运行中的进程;

    ww 避免详细参数被截断;


    -A 列出所有的进程
    -w 显示加宽可以显示较多的资讯
    -au 显示较详细的资讯
    -aux 显示所有包含其他使用者的进程

    -e 显示所有进程,环境变量
    -f 全格式
    -h 不显示标题
    -l 长格式
    -w 宽输出
    a   显示终端上地所有进程,包括其他用户地进程
    r   只显示正在运行地进程
    x   显示没有控制终端地进程

    我们常用的选项是组合是 aux 或 lax,还有参数 f 的应用。
    pids 只列出进程标识符,之间运用逗号分隔.该进程列表必须在命令行参数地最后一个选项后面紧接着给出,中间不能插入空格.比如:ps -f1,4,5 显示的是进程ID为1,4,5的进程

    下介绍长命令行选项,这些选项都运用“--”开头:
    --sort X[+|-] key [,[+|-] key [,…]] 从SORT KEYS段中选一个多字母键.+”字符是可选地,因为默认地方向就是按数字升序或者词典顺序,“-”字符是逆序排序(即降序).

    比如: ps -jax -sort=uid,-ppid,+pid.
    --help 显示帮助信息.
    --version 显示该命令地版本信息.

    在前面地选项说明中提到了排序键,接下来对排序键作进一步说明.需要注意地是排序中运用地值是ps运用地内部值,并非仅用于某些输出格式地伪值.排序键列表见下表.

    ============排序键列表==========================
    c cmd   可执行地简单名称 
    C cmdline   完整命令行 
    f flags   长模式标志 
    g pgrp   进程地组ID 
    G tpgid   控制tty进程组ID 
    j cutime   累计用户时间 
    J cstime   累计系统时间 
    k utime   用户时间 
    K stime   系统时间 
    m min_flt   次要页错误地数量 
    M maj_flt   重点页错误地数量 
    n cmin_flt 累计次要页错误 
    N cmaj_flt 累计重点页错误 
    o session   对话ID 
    p pid   进程ID 
    P ppid   父进程ID 
    r rss   驻留大小 
    R resident 驻留页 
    s size   内存大小(千字节) 
    S share   共享页地数量 
    t tty   tty次要设备号 
    T start_time 进程启动地时间 
    U uid   UID
    u user   用户名
    v vsize   总地虚拟内存数量(字节) 
    y priority 内核调度优先级
    ========================================ps aux 或 lax 输出的解释=========================

    2、ps aux 或 lax 输出的解释

    au(x) 输出格式 : 
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

    USER: 进程所有者
    PID: 进程ID

    %CPU: 占用的 CPU 使用率
    %MEM: 占用的内存使用率
    VSZ: 占用的虚拟内存大小
    RSS: 占用的内存大小

    TTY: 终端的次要装置号码 (minor device number of tty)

    STAT: 进程状态:

    START: 启动进程的时间; 
    TIME: 进程消耗CPU的时间;
    COMMAND:命令的名称和参数;

    =========================================进程STAT状态==================================

    D 无法中断的休眠状态(通常 IO 的进程); 
    R 正在运行,在可中断队列中; 
    S 处于休眠状态,静止状态; 
    T 停止或被追踪,暂停执行; 
    W 进入内存交换(从内核2.6开始无效); 
    X 死掉的进程; 
    Z 僵尸进程不存在但暂时无法消除;

    W: 没有足够的记忆体分页可分配
    WCHAN 正在等待的进程资源;

    <: 高优先级进程
    N: 低优先序进程
    L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O),即,有些页被锁进内存

    s 进程的领导者(在它之下有子进程); 
    l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads); 
    + 位于后台的进程组;

    ========================================kill 终止进程================================

    kill 终止进程

    有十几种控制进程的方法,下面是一些常用的方法:

    kill -STOP [pid] 
    发送SIGSTOP (17,19,23)停止一个进程,而并不消灭这个进程。

    kill -CONT [pid] 
    发送SIGCONT (19,18,25)重新开始一个停止的进程。

    kill -KILL [pid] 
    发送SIGKILL (9)强迫进程立即停止,并且不实施清理操作。

    kill -9 -1 
    终止你拥有的全部进程。

    SIGKILL 和 SIGSTOP 信号不能被捕捉、封锁或者忽略,但是,其它的信号可以。所以这是你的终极武器。

    ==================================================范例==============================

    $ ps
    PID TTY TIME COMMAND
    5800 ttyp0 00:00:00 bash
    5835 ttyp0 00:00:00 ps
    可以看到,显示地项目共分为四项,依次为PID(进程ID)、TTY(终端名称)、TIME(进程执行时 间)、COMMAND(该进程地命令行输入).

    可以运用u选项来查看进程所有者及其他少许详细信息,如下所示:
    $ ps u
    USER PID %CPU %MEM USZ RSS TTY STAT START TIME COMMAND
    test 5800 0.0 0.4 1892 1040 ttyp0 S Nov27 0:00 -bash
    test 5836 0.0 0.3 2528 856 ttyp0 R Nov27 0:00 ps u

    bash进程前面有条横线,意味着该进程便是用户地登录shell,所以对于一个登录用户来说带短横线地进程只有一个.还可以看 到%CPU、%MEM两个选项,前者指该进程占用地CPU时间

    和总时间地百分比;后者指该进程占用地内存和总内存地百分比.
    在这种情况下看到了所有控制终端地进程;当然对于其他那些没有控制终端地进程 还是没有观察到,所以这时就需要运用x选项.运用x选项可以观察到所有地进程情况.

    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  显示所有程序,不以终端机来区分。

     最常用的方法是ps -aux,然后再用管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。

  • 相关阅读:
    Java实现 LeetCode 56 合并区间
    JQuery实现对html结点的操作(创建,添加,删除)
    JQuery实现对html结点的操作(创建,添加,删除)
    JQuery实现对html结点的操作(创建,添加,删除)
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 54 螺旋矩阵
    Java实现 LeetCode 54 螺旋矩阵
    Java实现 LeetCode 54 螺旋矩阵
  • 原文地址:https://www.cnblogs.com/bayonetxxx/p/3894568.html
Copyright © 2011-2022 走看看