Linux进程查看及管理的工具

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

 一.    pstree命令:用于查看进程树之间的关系

功能说明:以树状图显示运行的程序。

语法:pstree [-acGhlnpuUV][-H <程序识别码>][<程序识别码>/<用户名称>]
参数:
   -a  显示每个程序的完整指令,包含路径,参数或是常驻服务的标示。
   -c  不使用精简标示法。
   -G  使用VT100终端机的列绘图字符。
   -h  列出树状图时,特别标明现在执行的程序。
   -H <程序识别码>  此参数的效果和指定”-h”参数类似,但特别标明指定的程序。
   -l  采用长列格式显示树状图。
   -n  用程序识别码排序。预设是以程序名称来排序。
   -p  显示程序识别码。
   -u  显示用户名称。
   -U  使用UTF-8列绘图字符。
   -V  显示版本信息。


  二.   ps 命令是基础的监控命令

参数:
    -A 显示所有进程(与-e效果一样)
    -a 显示除控制进程与无端进程外的所有进程
    -N 显示与指定参数不符的所有进程
    -d 显示除控制进程外的所有进程
    -C 显示包含在cmdlist列表中的进程
    -G 显示组ID在grplist列表中的进程
    -U 显示属主的用户ID在uerlist列表中的进程
    -g 显示会话或组ID在grplist列表中的进程
    -p 显示PID在pidlist列表中的进程
    -s 显示会话ID在sesslist列表中的进程
    -t 显示终端ID在ttylist列表中的进程
    -u 显示有效用户ID在userlist列表中的进程
    -F 显示更多额外输出(相对于-f参数而言)
    -O 显示默认输出以外以及format列表指定的特定列
    -M 显示进程的安全信息
    -c 显示进程的额外调度信息
    -f 显示完整格式的输出
    -j 显示任务信息
    -l 显示长列表
    -o 仅显示由format指定的列
    -y 不要显示进程标记
    -Z 显示安全标签信息
    -H 用层级格式来显示信息
    -n 定义WCHAN列显示的值
    -w 采用宽输出模式,不限宽度显示
    -L 显示进程中的线程
    -V 显示ps的版本号

常用组合: ps aux  列出目前所有的正在内存当中的程序;(   a:所有与终端相关的进程; u:所有与终端无关的进程;x:以用户为中心组织进程状态信息显示;

[root@resiones ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.3 125432  3976 ?        Ss   17:42   0:01 /usr/lib/syste
root          2  0.0  0.0      0     0 ?        S    17:42   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    17:42   0:02 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   17:42   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    17:42   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    17:42   0:00 [rcu_bh]

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,会话创建者,这个启动后,会引起很多其他进程,如果它被终止,与它相关的进程也会终止
      COMMAND: 由什么命令启动的进程

ps –ef 显示所有信息,连同命令行;(-e:显示所有进程;  -f:显示完整格式的进程信息    

[root@resiones ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 17:42 ?        00:00:01 /usr/lib/systemd/systemd --swi
root          2      0  0 17:42 ?        00:00:00 [kthreadd]
root          3      2  0 17:42 ?        00:00:02 [ksoftirqd/0]
root          5      2  0 17:42 ?        00:00:00 [kworker/0:0H]
root          7      2  0 17:42 ?        00:00:00 [migration/0]
root          8      2  0 17:42 ?        00:00:00 [rcu_bh]
root          9      2  0 17:42 ?        00:00:00 [rcu_sched]


 三.       pgrep, pkill:
                   pgrep [options] pattern------进程显示过滤,用法和pkill一样,比如pgrep -u root -l
 
                   pkill [options] pattern
                       -u uid: effective user,真实有效的用户
                       -U uid: real user,看到的用户
                       -t terminal: 与指定终端相关的进程
                       -l: 显示进程名
                       -a: 显示完整格式的进程名
                       -P pid: 显示其父进程为此处指定的进程的进程列表
 
  四.      pidof:
               根据进程名获取其PID;
 
  五.      top:               
              1)有许多内置命令(就是进入top显示界面后直接按命令键):
                     排序:默认以CPU排序
                       P:以占据的CPU百分比;
                       M:占据内存百分比;
                       T:累积占据CPU时长;
 
                     首部信息显示:
                       uptime信息:l命令
                       tasks及cpu信息:t命令, cpu分别显示:1 (数字)  
                       memory信息:m命令,其中us:用户空间,sy:内核空间,ni:nice值,id:空闲时间,wa:等待I/O时间,hi:硬件中断时间,si:软件中断时间,st:被虚拟技术偷走的时间
 
                     退出命令:q
                     修改刷新时间间隔:s
                     终止指定进程:k
 
               2)参数选项:
                   -d #: 指定刷新时间间隔,默认为3秒;
                   -b: 以批次方式;自动翻页
                   -n #: 显示多少批次;比如 top -b -n 1--只显示第一屏
 
六.        htop命令:
               选项:
                   -d #: 指定刷新时间间隔;
                   -u UserName: 仅显示指定用户的进程;
                   -s COLOMN: 以指定字段进行排序;
 
              内建命令:
                   s: 跟踪选定进程的系统调用;(上下键选进程)
                   l: 显示选定进程打开的文件列表;
                   a:将选定的进程绑定至某指定CPU,比如有多个CPU时,要把进程运行在哪个CPU上
                   t: 显示进程树
 
               注意:Fedora-EPEL源中提供此软件,比如在镜像源中指定base=mirrors.aliyun.com/epel/7/x86_64/
 
七     vmstat命令:虚拟内存状态工具---经典
        vmstat [options] [delay [count]]    ,比如 vmstat 2,表示2秒刷新一次,vmstat 2 5,显示5次退出
 
            1)procs相关:
                r:等待运行的进程的个数,单个CPU时,超过3个就说明CPU性能不够了;
                b:处于不可中断睡眠态的进程个数;(被阻塞的队列的长度);
 
            2) memory:
                swpd: 交换内存的使用总量;
                free:空闲物理内存总量;
                buffer:用于buffer的内存总量;
                cache:用于cache的内存总量;
 
            3)swap:
                si:数据进入swap中的数据速率(kb/s)
                so:数据离开swap中的数据速率(kb/s),重新载入内存
 
            4)io:
                bi:从块设备(磁盘)读入数据到系统(内存)的速率;(kb/s)
                bo: 保存数据至块设备的速率;
 
            5)system:
                in: interrupts, 中断速率;
                cs: context switch, 进程切换速率;
 
            6)cpu:
                us--用户空间占据CPU的比例
                sy--内核空间
                id--空闲比例
                wa--等待I/0完成所消耗的时间比例
                st--被虚拟化技术偷走的比例
 
        选项:
            -s: 显示内存的统计数据
 
 
八.     pmap命令:
          pmap - report memory map of a process,查看进程都占用了哪些内存空间
            pmap [options] pid [...]
                -x: 显示详细格式的信息;
 
            另外一种实现方式:
                # cat /proc/PID/maps
 
 
九.     dstat命令:-系统资源统计数据,支持插件来扩展功能,比较好用
          dstat [-afv] [options..] [delay [count]]
            -c: 显示cpu相关信息;
                -C #,#,...,total ---显示哪一个CPU信息
            -d: 显示disk读写相关信息;
                -D total,sda,sdb,...单独显示某个disk,或全部disk
            -g:显示page相关统计数据;
            -m: 显示memory相关统计数据;
            -n: 显示network相关统计数据;
            -p: 显示process相关统计数据;
            -r: 显示io请求相关的统计数据;
            -s: 显示swapped相关的统计数据;
            --tcp
            --udp
            --unix
            --raw
            --socket---相当于参数tcp,udp,raw一起用
            --ipc ----进程间通讯的相关信息
            --top-cpu:显示最占用CPU的进程;
            --top-io: 显示最占用io的进程;
            --top-mem: 显示最占用内存的进程;
            --top-latency: 显示延迟最大的进程,运行起来最慢,跟不上CPU;
 
十.   kill命令:
        向进程发送控制信号,以实现对进程管理,不单是杀死进程
 
        显示当前系统可用信号:
            # kill -l  列出kill支持能发出的信号
            # 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,就是把前面的SIG去掉就行
 
           向进程发信号:
            kill [-SIGNAL] PID...
 
           终止“名称”之下的所有进程:
            killall [-SIGNAL] Program
 
十一.   Linux的作业控制
           前台作业:通过终端启动,且启动后一直占据终端;
           后台作业:可以通过终端启动,但启动后即转入后台运行(释放终端);
 
           如何让作业运行于后台?
              (1) 运行中的作业
                Ctrl+z
              (2) 尚未启动的作业
                # COMMAND &
            此类作业虽然被送往后台运行,但其依然与终端相关;如果希望送往后台后,剥离与终端的关系。也就是终端关闭,进程依然运行:
                # nohup COMMAND &
 
            查看所有作业:
                # jobs  ,这个命令输出会显示作业号
 
            作业控制:
                # fg % JOB_NUM:把指定的后台作业调回前台;
                # bg % JOB_NUM:让送往后台的作业在后台继续运行;
                # kill  % JOB_NUM:终止指定的作业,这里的%不能省去
 
 
 十二. 进程优先级调整:
          静态优先级:100-139,数字越小,优先级越高
          进程默认启动时的nice值为0,优先级为120,nice值的范围是(-20,19)
 
          nice命令:启动进程时,以指定优先级运行
            nice [OPTION] [COMMAND [ARG]...],例如:nice -n 5 htop
 
          renice命令:对已处于运行态的进程,调整优先级
            renice [-n] priority pid...,例如: renice -n 2 3618
 
          查看:
            ps axo pid,comm,ni

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值