zoukankan      html  css  js  c++  java
  • shell学习五十天----查看进程ps命令

    进程列表

    列出进程中最重要的命令便是进程状态命令:ps.

    ps命令是进程状态(Process Status)的缩写.ps命令用来列出系统中当前执行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,假设想要动态的显示进程信息,就能够使用top命令.

    要对进程进行检測和控制,首先必需要了解当前进程的情况,也就是需要查看当前进程,ps命令就是最基本同一时候也是很强大的进程查看命令.使用该命令能够确定有哪些进程正在执行和执行的状态,进程是否结束,进程有没有僵尸,哪些进程占用了过多的资源等等.总之大部分信息都是能够通过执行该命令得到的.

    ps为我们提供了进程的一次性(不要给性加重音)的查看,他所提供的查看结果并不动态连续;假设想对进程进行时间监控,应该使用top工具.

    kill命令用来杀死进程

    Linux上进程有五种状态

    1.执行(正在执行或在执行队列中的等待)

    2.中断(休眠中,受阻,在等待某个条件的形成或接收到信号)

    3.不可中断(收到信号不唤醒和不可执行,进程必须等待直到有中断发生)

    4.僵尸(进程已终止,但进程描写叙述符存在,直到父进程调用wait()系统调用后释放)

    5.停止(进程收到SIGSTOP,SIGSTP,SIGTIN,SIGTOU信号后停止执行)

    ps工具标识进程的物种状态码:

    状态码

    说明

    D

    不可中断

    R

    执行

    S

    中断

    T

    停止

    Z

    僵尸

    ps具体解释:

    1.命令格式:

    ps [參数]

    2.功能

    用来显示当前进程的状态

    3.命令參数

    參数

    说明

    a

    显示全部进程

    -a

    显示统一终端下的全部程序

    -A

    显示全部进程

    c

    显示进程的真实名称

    -N

    反向选择

    -e

    等于”-A”

    e

    显示环境变量

    f

    显示程序间的关系

    -H

    显示树状结构

    r

    显示当前中断的进程

    T

    显示当前终端的全部进程

    u

    指定用户的全部进程

    -au

    显示较具体的资讯

    -aux

    显示全部包括其它使用者的进程

    -C<命令>

    列出指定命令的状态

    --lines<行数>

    每页显示的行数

    --width<字符数>

    每页显示的字符数

    --help

    显示帮助信息

    --version

    显示版本号信息

    4.简单的使用

    案例1:显示全部进程:

    #ps -A

     PID TTY          TIME CMD

        1 ?        00:00:04 init

        2 ?

            00:00:00 kthreadd

        3 ?        00:00:00 migration/0

    省略部分结果

    案例2:显示指定用户信息:

    #ps -u root

      PID TTY          TIME CMD

        1 ?

            00:00:04 init

        2 ?

            00:00:00 kthreadd

    3 ?        00:00:00 migration/0

    省略部分结果

    案例3:显示全部进程信息,连同命令行

    #ps -ef

    UID        PID  PPID  C STIME TTY          TIME CMD

    root         1     0  0 19:45 ?        00:00:04 /sbin/init

    root         2     0  0 19:45 ?

            00:00:00 [kthreadd]

    root         3     2  0 19:45 ?

            00:00:00 [migration/0]

    root         4     2  0 19:45 ?        00:00:00 [ksoftirqd/0]

    省略部分结果

    案例4: psgrep经常使用组合使用方法,查找特定进程

    命令:

    #ps -ef|grep ssh

    root      1358     1  0 19:46 ?        00:00:00 /usr/sbin/sshd

    root      1650  1358  0 19:47 ?        00:00:00 sshd: root@pts/0 

    root      3598  1652  0 21:27 pts/0    00:00:00 grep ssh

    案例5:将眼下属于您自己这次登入的PID与相关信息列出

    #ps -l

    F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD

    4 S     0  1652  1650  0  80   0 - 27116 wait   pts/0    00:00:00 bash

    4 R     0  3600  1652  0  80   0 - 27033 -      pts/0    00:00:00 ps

    分析说明:各相关信息的意义:

    F代表这个程序的标识(flag),4代表使用者为super user

    S代表这个程序的状态(STAT).

    UID:程序被该UID所拥有

    PID:就是这个程序的ID

    PPID:则是其上级父程序的ID

    C:CPU使用的资源百分比

    PRI:这个是Priority(优先执序行)的缩写

    NI:这个是nice

    ADDR:这个是kernel function,指出该程序在内存的那个部分.假设是个running的程序,一般就是”-”.

    SZ:使用掉的内存大小

    WCHAN:眼下这个程序是否正在运作其中,若为-表示正在运作

    TTY: 登入这的终端机位置

    TIME: 使用掉的CPU时间

    CMD:所下达的指令为何

    在预设的情况下,ps仅会列出与眼下所在的bash shell有关的PID而已,所以当我们使用ps -l的时候,仅仅有三个PID.

    案例6:列出眼下全部的正在内存其中的程序

    #ps aux

    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

    root         1  0.0  0.0  19356  1612 ?        Ss   19:45   0:04 /sbin/init

    root         2  0.0  0.0      0     0 ?        S    19:45   0:00 [kthreadd]

    root         3  0.0  0.0      0     0 ?        S    19:45   0:00 [migration/0]

    省略部分结果

    分析说明:

    USER:process是属于哪个使用者账号的

    PID:process的号码

    %CPU:process使用掉的CPU资源百分比

    %MEM:process所占用的物理内存百分比

    VSZ:process使用掉的虚拟内存量(kb)

    RSS:process占用的固定的内存量(kb)

    TTY:process是在哪个终端机上执行,若与终端机无关,则显示 ? ,另外,tty1-tty6表示本机上的登入者程序,若为pts/0等等,则表示为由网络接进主机的程序.

    STAT:该程序眼下的状态,主要状态有:R(该程序眼下正在执行,或者是可被执行),S(该程序眼下正在睡眠中,但可被某些讯号唤醒),T(该程序应该已经终止,可是其父进程却无法正常的终止它,造成僵死程序的状态).

    START:process被触发启动的时间

    TIME:process实际使用CPU运作的时间

    COMMAND:该程序的实际命令.

    案例7:列出类似程序树的程序显示

    #ps -axjf

    Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

     PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND

        0     2     0     0 ?           -1 S        0   0:00 [kthreadd]

        2     3     0     0 ?           -1 S        0   0:00  \_ [migration/0]

        2     4     0     0 ?

               -1 S        0   0:00  \_ [ksoftirqd/0]

        2     5     0     0 ?           -1 S        0   0:00  \_ [migration/0]

    其它案例:

    使用:

    #ps -aux|more //实现分页查看

    使用:

    #ps -aux>test.txt //把全部进程显示出来,并输出到test.txt文件

    使用:

    #ps -o pid,ppid,pgrp,session,tpgid,comm//输出指定的字段

      PID  PPID  PGRP  SESS TPGID COMMAND

     1556  1554  1556  1556  1582 bash

     1582  1556  1582  1556  1582 ps

  • 相关阅读:
    机电传动控制第五周作业
    机电传动控制第四周作业
    机电传动控制 第三周作业
    机电传动控制第二周作业
    机电传动控制 第一周作业
    第一小组咖啡机器人最终结果
    第一组咖啡机器人界面设计1月6日进展
    第一组咖啡机器人界面设计一阶段进展
    实时软件控制第二次作业
    git的学习以及使用
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7074200.html
Copyright © 2011-2022 走看看