Linux进程查看及管理的工具:pstree, ps, pidof, pgrep, top, htop, glance, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup


常用命令组合:

        ss -tnl

        ps aux


pstree命令:

         pstree - display a tree of processes

        

        ps: process state

        ps - report a snapshot of the current processes

        

        Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中;


ps [OPTION]...

        选项:支持两种风格

        

        常用组合:aux

        u: 以用户为中心组织进程状态信息显示

        a: 与终端相关的进程;

        x: 与终端无关的进程;

        

         ~]# ps aux  (ss -tnl 命令比ps命令要快)

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

        

        VSZ: Virtual memory SiZe,虚拟内存集

        RSS: ReSident Size, 常驻内存集

        STAT:进程状态

        R:running

        S: interruptable sleeping

        D: uninterruptable sleeping

        T: stopped

        Z: zombie

        

        +: 前台进程

        l: 多线程进程

        N:低优先级进程

        <: 高优先级进程

        s: session leader

        

        常用组合:-ef

        -e: 显示所有进程

        -f: 显示完整格式程序信息

        

        常用组合:-eFH

        -F: 显示完整格式的进程信息

        -H: 以进程层级格式显示进程相关信息

                

        常用组合:-eo, axo

        -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm

        axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

        

        ni: nice值

        pri: priority,优先级

        psr: processor, CPU

        rtprio: 实时优先级

        

pgrep, pkill:

        pgrep [options] pattern

               pkill [options] pattern

        

               -u uid: effective user

               -U uid: real user

               -t terminal: 与指定终端相关的进程

               -l: 显示进程名

               -a: 显示完整格式的进程名

               -P pid: 显示其父进程为此处指定的进程的进程列表

        

               pidof:

               根据进程名获取其PID;

        

               top:

               有许多内置命令:

               排序:

               P:以占据的CPU百分比;

               M:占据内存百分比;

               T:累积占据CPU时长;

        

               首部信息显示:

               uptime信息:l命令

               tasks及cpu信息:t命令

               cpu分别显示:1 (数字)

               memory信息:m命令

        

               退出命令:q

               修改刷新时间间隔:s

               终止指定进程:k

        

               选项:

               -d #: 指定刷新时间间隔,默认为3秒;

               -b: 以批次方式;

               -n #: 显示多少批次;

        

               htop命令:

               选项:

               -d #: 指定延迟时间;

               -u UserName: 仅显示指定用户的进程;

               -s COLOMN: 以指定字段进行排序;

               命令:

               s: 跟踪选定进程的系统调用;

               l: 显示选定进程打开的文件列表;

               a:将选定的进程绑定至某指定CPU核心;

               t: 显示进程树

        

               注意:Fedora-EPEL源



vmstat命令:

        vmstat [options] [delay [count]]

        procs:

                r:等待运行的进程的个数;

                b:处于不可中断睡眠态的进程个数;(被阻塞的队列的长度);

                memory:

                swpd: 交换内存的使用总量; 

                free:空闲物理内存总量;

                buffer:用于buffer的内存总量;

                cache:用于cache的内存总量;

        swap:

                si:数据进入swap中的数据速率(kb/s)

                so:数据离开swap中的数据速率(kb/s)

                io:

                bi:从块设备读入数据到系统的速率;(kb/s)

                bo: 保存数据至块设备的速率;

        system:

                in: interrupts, 中断速率;

                cs: context switch, 进程切换速率;

                cpu:

                us

                sy

                id

                wa

                st

                

        选项:

        -s: 显示内存的统计数据

        

pmap命令:

        pmap - report memory map of a process

                        

        pmap [options] pid [...]

        -x: 显示详细格式的信息;

                        

        另外一种实现:

        # cat /proc/PID/maps

        

glances命令:

        glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-o output]

        

        内建命令:

          a  Sort processes automatically     l  Show/hide logs

          c  Sort processes by CPU%           b  Bytes or bits for network I/O

          m  Sort processes by MEM%           w  Delete warning logs

          p  Sort processes by name           x  Delete warning and critical logs

          i  Sort processes by I/O rate       1  Global CPU or per-CPU stats

          d  Show/hide disk I/O stats         h  Show/hide this help screen

          f  Show/hide file system stats      t  View network I/O as combination

          n  Show/hide network stats          u  View cumulative network I/O

          s  Show/hide sensors stats          q  Quit (Esc and Ctrl-C also work)

          y  Show/hide hddtemp stats

        

        常用选项:

        -b: 以Byte为单位显示网卡数据速率;

        -d: 关闭磁盘I/O模块;

        -f /path/to/somefile: 设定输入文件位置;

        -o {HTML|CSV}:输出格式;

        -m: 禁用mount模块

        -n: 禁用网络模块

        -t #: 延迟时间间隔

        -1:每个CPU的相关数据单独显示;

        

        C/S模式下运行glances命令:

        服务模式:

        glances -s -B IPADDR

        

        IPADDR: 指明监听于本机哪个地址


        客户端模式:

        glances -c IPADDR

        IPADDR:要连入的服务器端地址


dstat命令:

        dstat [-afv] [options..] [delay [count]]

        

        -c: 显示cpu相关信息;

        -C #,#,...,total

        -d: 显示disk相关信息;

        -D total,sda,sdb,...

        -g:显示page相关统计数据;

        -m: 显示memory相关统计数据;

        -n: 显示network相关统计数据;

        -p: 显示process相关统计数据;

        -r: 显示io请求相关的统计数据;

        -s: 显示swapped相关的统计数据;

        

        --tcp

        --udp

        --unix

        --raw

        --socket 


        --ipc

        

        --top-cpu:显示最占用CPU的进程;

        --top-io: 显示最占用io的进程;

        --top-mem: 显示最占用内存的进程;

        --top-lantency: 显示延迟最大的进程;


kill命令:


        向进程发送控制信号,以实现对进程管理

        

        显示当前系统可用信号:

        # kill -l

        # man 7 signal

        

        常用信号:

                1) SIGHUP: 无须关闭进程而让其重读配置文件;

                2) SIGINT: 中止正在运行的进程;相当于Ctrl+c;

                9) SIGKILL: 杀死正在运行的进程;

                15) SIGTERM:终止正在运行的进程;

                18) SIGCONT:

                19) SIGSTOP:

        

        指定信号的方法:

                (1) 信号的数字标识;1, 2, 9

                (2) 信号完整名称;SIGHUP

                (3) 信号的简写名称;HUP

        

        向进程发信号:

                kill [-SIGNAL] PID...

        

        终止“名称”之下的所有进程:

                killall [-SIGNAL] Program