Linux进程

监测程序(ps):
$ ps    -- 默认情况下, ps 命令只会显示运行在当前控制台下的属于当前用户的进程(!注意,shell也只是运行在系统上的另一个程序而已。以及 ps 命令本身)
ps的三种风格:
    一、Unix风格的 ps 命令参数:
        -A              显示所有进程
        -N              显示与指定参数不符的所有进程
        -a              显示除控制进程(session leader ① )和无终端进程外的所有进程
        -d              显示除控制进程外的所有进程
        -e              显示所有进程
        -C cmdlist      显示包含在 cmdlist 列表中的进程
        -G grplist      显示组ID在 grplist 列表中的进程
        -U userlist     显示属主的用户ID在 userlist 列表中的进程
        -g grplist      显示会话或组ID在 grplist 列表中的进程 ②
        -p pidlist      显示PID在 pidlist 列表中的进程
        -s sesslist     显示会话ID在 sesslist 列表中的进程
        -t ttylist      显示终端ID在 ttylist 列表中的进程
        -u userlist     显示有效用户ID在 userlist 列表中的进程
        -F              显示更多额外输出(相对 -f 参数而言)
        -O format       显示默认的输出列以及 format 列表指定的特定列
        -M              显示进程的安全信息
        -c              显示进程的额外调度器信息
        -f              显示完整格式的输出
        -j              显示任务信息
        -l              显示长列表
        -o format       仅显示由 format 指定的列
        -y              不要显示进程标记(process flag,表明进程状态的标记)
        -Z              显示安全标签(security context) ① 信息
        -H              用层级格式来显示进程(树状,用来显示父进程)
        -n namelist     定义了 WCHAN 列显示的值
        -w              采用宽输出模式,不限宽度显示
        -L              显示进程中的线程
        -V              显示 ps 命令的版本号
        ps -ef
        ps -l
            F :内核分配给进程的系统标记。
            S :进程的状态(O代表正在运行;S代表在休眠;R代表可运行,正等待运行;Z代表僵化,进程已结束但父进程已不存在;T代表停止)。
            UID:启动这些进程的用户。
            PID:进程的进程ID。
            PPID:父进程的进程号(如果该进程是由另一个进程启动的)。
            C:进程生命周期中的CPU利用率。
            PRI :进程的优先级(越大的数字代表越低的优先级)。
            NI :谦让度值用来参与决定优先级。    
            ADDR :进程的内存地址。    
            SZ :假如进程被换出,所需交换空间的大致大小。
            WCHAN :进程休眠的内核函数的地址。
            TTY:进程启动时的终端设备。
            TIME:运行进程需要的累计CPU时间。
            CMD:启动的程序名称。
            STIME:进程启动时的系统时间。
    二、BSD风格的 ps 命令参数:
        T       显示跟当前终端关联的所有进程
        a       显示跟任意终端关联的所有进程
        g       显示所有的进程,包括控制进程
        r       仅显示运行中的进程   
        x       显示所有的进程,甚至包括未分配任何终端的进程           
        U userlist    显示归 userlist 列表中某用户ID所有的进程               
        p pidlist     显示PID在 pidlist 列表中的进程                         
        t ttylist     显示所关联的终端在 ttylist 列表中的进程                
        O format      除了默认输出的列之外,还输出由 format 指定的列         
        X             按过去的Linux i386寄存器格式显示                       
        Z             将安全信息添加到输出中                                 
        j             显示任务信息                                           
        l             采用长模式                                             
        o format      仅显示由 format 指定的列                               
        s             采用信号格式显示                                       
        u             采用基于用户的格式显示                                 
        v             采用虚拟内存格式显示                                   
        N namelist    定义在 WCHAN 列中使用的值                              
        O order       定义显示信息列的顺序                                   
        S             将数值信息从子进程加到父进程上,比如CPU和内存的使用情况
        c             显示真实的命令名称(用以启动进程的程序名称)           
        e             显示命令使用的环境变量                                 
        f             用分层格式来显示进程,表明哪些进程启动了哪些进程       
        h             不显示头信息                                           
        k sort        指定用以将输出排序的列                                 
        n             和 WCHAN 信息一起显示出来,用数值来表示用户ID和组ID    
        w             为较宽屏幕显示宽输出                                   
        H             将线程按进程来显示                                     
        m             在进程后显示线程                                       
        L             列出所有格式指定符                                     
        V             显示 ps 命令的版本 
        ps l
            VSZ:进程在内存中的大小,以千字节(KB)为单位。
            RSS:进程在未换出时占用的物理内存。
            STAT:代表当前进程状态的双字符状态码。
                第一个字符采用了和Unix风格 S 列相同的值,表明进程是在休眠、运行还是等待。
                第二个参数进一步说明进程的状态
                    < :该进程运行在高优先级上。
                    N :该进程运行在低优先级上。
                    L :该进程有页面锁定在内存中。
                    s :该进程是控制进程。
                    l :该进程是多线程的。
                    + :该进程运行在前台。 
    三、GNU风格的 ps 命令参数:
        --deselect       显示所有进程,命令行中列出的进程
        --Group grplist  显示组ID在 grplist 列表中的进程
        --User userlist  显示用户ID在 userlist 列表中的进程
        --group grplist  显示有效组ID在 grplist 列表中的进程
        --pid pidlist    显示PID在 pidlist 列表中的进程
        --ppid pidlist   显示父PID在 pidlist 列表中的进程
        --sid sidlist    显示会话ID在 sidlist 列表中的进程
        --tty ttylist    显示终端设备号在 ttylist 列表中的进程
        --user userlist  显示有效用户ID在 userlist 列表中的进程
        --format format  仅显示由 format 指定的列
        --context        显示额外的安全信息
        --cols n         将屏幕宽度设置为 n 列
        --columns n      将屏幕宽度设置为 n 列
        --cumulative     包含已停止的子进程的信息
        --forest         用层级结构显示出进程和父进程之间的关系
        --headers        在每页输出中都显示列的头
        --no-headers     不显示列的头
        --lines n        将屏幕高度设为 n 行
        --rows n         将屏幕高度设为 n 排
        --sort order     指定将输出按哪列排序
        --width n        将屏幕宽度设为 n 列
        --help           显示帮助信息
        --info           显示调试信息
        --version        显示 ps 命令的版本号
        
实时监控(top):
    第一行显示了当前时间、系统的运行时间、登录的用户数以及系统的平均负载(最近1分钟,5分钟,15分钟)。通常,如果系统的负载值超过了2,就说明系统比较繁忙了 
    第二行显示了进程概要信息—— top 命令的输出中将进程叫作任务(task):有多少进程处在运行、休眠、停止或是僵化状态(僵化状态是指进程完成了,但父进程没有响应)。
    第三行显示了CPU的概要信息。 top 根据进程的属主(用户还是系统)和进程的状态(运行、空闲还是等待)将CPU利用率分成几类输出 紧跟其后的两行说明了系统内存的状态。
    第四行说的是系统的物理内存:总共有多少内存,当前用了多少,还有多少空闲。
    第五行说的是同样的信息,不过是针对系统交换空间(如果分配了的话)的状态而言的。
    PID:进程的ID。
    USER:进程属主的名字。
    PR:进程的优先级。
    NI:进程的谦让度值。
    VIRT:进程占用的虚拟内存总量。
    RES:进程占用的物理内存总量。
    SHR:进程和其他进程共享的内存总量。
    S:进程的状态(D代表可中断的休眠状态,R代表在运行状态,S代表休眠状态,T代表跟踪状态或停止状态,Z代表僵化状态)。
    %CPU:进程使用的CPU时间比例。
    %MEM:进程使用的内存占可用内存的比例。
    TIME+:自进程启动到目前为止的CPU时间总量。
    COMMAND:进程所对应的命令行名称,也就是启动的程序名。
在 top 命令运行时键入可改变 top 的行为。键入f通过方向键选择字段:键入s选择需要排序的字段,键入d新增删除显示字段,键入q退出。

Linux进程信号
    1   HUP    挂起
    2   INT    中断
    3   QUIT   结束运行
    9   KILL   无条件终止
    11  SEGV   段错误
    15  TERM   尽可能终止
    17  STOP   无条件停止运行,但不终止
    18  TSTP   停止或暂停,但继续在后台运行
    19  CONT   在 STOP 或 TSTP 之后恢复执行
结束进程kill与killall,kill通过PID结束进程,killall支持进程名和通配符 
    kill 3940
    kill -s HUP 3940  -- 适用于不服管教的进程
    killall http*            -- 适用于群杀

 

posted on 2019-07-16 11:38  丿星痕☆森文  阅读(171)  评论(0编辑  收藏  举报

导航