#22 进程、优先级管理命令:vmstat、pmap、htop、glances、dstat、kill、killall、pkill、bg、fg、nice...

简介:

    进程之间可以通信的;IPC,inter-process communication

      1.signal(信号)

      2.semaphore(旗语)

      3.shared memory(SHM)

      4.socket


    有效的信号表示方法:

      1.使用信号的数字编码进行表示;

      2.使用信号的完整名称进行表示;

      3.使用信号的简写名称进行表示,简写名称就是完整名称中不包含“SIG”的其余部分;


    常用的信号:

      1.SIGHUP:无需关闭对应进程而让其重新读取其自身的配置文件;

      2.SIGINT:终止正在运行的前台进程;

      9.SIGKILL:没有任何预兆的终止正在运行的进程,残暴;

      15.SIGTERM:默认信号,终止正在运行的进程;

      18.SIGCONT:让转入后台的进程继续运行;

      19.SIGSTOP:让进程转入后台并停止运行;


    进程作业:

      前台作业:

        foreground job,通过终端启动并且启动后会一直占据终端的进程;


      后台作业:

        background job,可以通过终端启动,但启动后立即转入后台运行,释放终端;


    如何让作业工作于后台:

      1.正在运行的前台作业

        Ctrl+z

        注意:实际上是向此进程发送SIGSTOP信号,使得该进程转入后台以后即停止运行;  


      2.尚未启动的作业,使其启动并转入后台;

        # COMMAND &

        注意:此类作业是从前台启动,启动后立即转入后台,但即便如此,此进程也是与终端相关的进程;如果终端关闭,则此类进程也会终止;


      3.尚未启动的作业,使其启动并转入后台,同时剥离其与终端的关联;

        # nohup COMMAND &


    查看后台作业的信息:

      jobs


    将后台作业转入前台运行:

      fg [JOB_ID]


    使后台作业在后台运行

      bg [JOB_ID]


    终止后台作业:

      kill %JOB_ID


      kill %1


    调整进程优先级:

      0-139

      100-139


      使用nice值调整进程的静态优先级:

        nice值的取值范围是:-20~19

        默认情况下,所有用户进程的初始nice值都是0;默认优先级为120;


      注意:只有超级用户root才能使用负nice值提升进程的优先级;普通用户只能使用正nice值来降低进程的优先级;


  vmstat:显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。


    其执行显示结果:

      FIELD DESCRIPTION FOR VM MODE

         Procs(进程)

             r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1)

             b: 等待IO的进程数量。


         Memory(内存)

             swpd: 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。

             free: 空闲物理内存大小。

             buff: 用作缓冲的内存大小。

             cache: 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。

             inact: 不活动内存。

             active: 活动内存。


         Swap(虚拟内存)

             si:每秒从交换区写到内存的大小,由磁盘调入内存。

             so: 每秒写入交换区的内存大小,由内存调入磁盘。


         IO(读写)

             bi: 每秒读取的块数

             bo: 每秒写入的块数


         System(系统)

             in: 每秒中断数,包括时钟中断。

             cs: 每秒上下文切换数。


         CPU(以百分比表示)

             These are percentages of total CPU time.

             us: 用户进程执行时间百分比(user time)

             sy: 内核系统进程执行时间百分比(system time)

             id: 空闲时间百分比

             wa: IO等待时间百分比

             st: 虚拟机偷走时间百分比

          

    选项:

      -s:从/proc/meminfo文件中抽取的信息并加工后输出;


      delay:按照deley所指示的时间重复执行vmstat命令,默认单位为秒;

      count:重复执行v模式TAT命令的次数;

    例子:

      vmstat


  pmap:报告进程的内存映射关系,是Linux调试及运维一个很好的工具。

    选项:

      -x, --extended:显示扩展的信息

    例子:

      pidof vim

      3690

      pmap -x 3690


  htop:一款监控软件,可以看成top命令的升级版。

    常用选项:

      -d #:htop刷新的间隔时间;

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

      -s COLUME_NAME:根据指定字段进行排序;

    交互式命令:

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

      t F5:显示进程树结构,以显示进程之间的父子关系;

      a:将选定的进程绑定到某指定的CPU核心运行;

    例子:

      htop


  glances:系统实时监控工具

    常用选项:

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

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

      -m:关闭Mount模块;

      -n:关闭Network模块;

      -1:单独显示每颗CPU核心的数据统计信息;

      -t #:设定刷新时间间隔;

      -o {HTML|CSV}:为输出数据指定输出的格式;

      -f /PATH/TO/OUTPUT_DIR:指定输出文件的路径,glances.html


      glances可以工作于C/S模型下;

        S:服务器模式

          glances -s -B ipaddr

            ipaddr:服务器本地的某个IP地址;


      进程之间可以通信的;IPC,inter-process communication

        1.signal

        2.semaphore 旗语

        3.shared memory(SHM)

        4.socket

    例子:

      glances


  dstat:全能系统信息统计工具。

    常用选项:

      -c,--cup:显示CPU相关的信息

      -d,--disk:显示磁盘相关信息;

      -g,--page:显示page相关信息;

      -n,--net:显示与interface相关信息;

      -y,--sys:现实与系统相关的信息;

      --tpc:显示与TCP连接状态有关的信息;

      --udp:显示与udp连接有关的信息;

      --ipc:

      --raw:

      --socket:

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

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

    例子:

      dstat


  kill:用来删除执行中的程序或工作。

    常用选项:

      -l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;

    例子:

      kill -l(查看信号的信息)

    有效的信号表示方法:

      1.使用信号的数字编码进行表示;

      2.使用信号的完整名称进行表示;

      3.使用信号的简写名称进行表示,简写名称就是完整名称中不包含“SIG”的其余部分;


    常用的信号:

      1.SIGHUP:无需关闭对应进程而让其重新读取其自身的配置文件;

      2.SIGINT:终止正在运行的前台进程;

      9.SIGKILL:没有任何预兆的终止正在运行的进程,残暴;

      15.SIGTERM:默认信号,终止正在运行的进程;

      18.SIGCONT:让转入后台的进程继续运行;

      19.SIGSTOP:让进程转入后台并停止运行;   


  killall:使用进程的名称来杀死进程

    选项:

      -e:对长名称进行精确匹配; 

      -l:忽略大小写的不同; 

      -p:杀死进程所属的进程组; 

      -i:交互式杀死进程,杀死进程前需要进行确认; 

      -l:打印所有已知信号列表; 

      -q:如果没有进程被杀死。则不输出任何信息; 

      -r:使用正规表达式匹配要杀死的进程名称; 

      -s:用指定的进程号代替默认信号“SIGTERM”; 

      -u:杀死指定用户的进程。

    例子:

      killall vi

   

  pkill:根据pattern进行进程终止;有可能误伤其他程序;

    选项:

      -o:仅向找到的最小(起始)进程号发送信号; 

      -n:仅向找到的最大(结束)进程号发送信号; 

      -P:指定父进程号发送信号; 

      -g:指定进程组; 

      -t:指定开启进程的终端。

    例子:

      pkill vim


  jobs:用于显示Linux中的任务列表及任务状态,包括后台运行的任务。

    选项:

      -l:显示进程号; 

      -p:仅任务对应的显示进程号; 

      -n:显示任务状态的变化; 

      -r:仅输出运行状态(running)的任务; 

      -s:仅输出停止状态(stoped)的任务。

    例子:

      find / -name password &

      jobs -l(显示当前系统的任务列表)

    注意:要得到以上输出信息,必须在执行jobs命令之前执行命令find / -name password &。否则,执行jobs命令不会显示任何信息。


  bg:用于将作业放到后台运行,使前台可以执行其他任务。

    例子:

      bg 1(后台执行任务号为1的任务)

      find / -name password &(后台执行任务)

      注意:实际上,使用bg命令与在指令后面添加符号"&"的效果是一样的。例如,使用&将find / -name password放到后台执行


  fg:用于将后台作业(在后台运行的或者在后台挂起的作业)放到前台终端运行。

    例子:

      fg 1(将任务转换到前台执行) 

      find / -name password(前台执行命令)


  nice:用于以指定的进程调度优先级启动其他的程序。

    选项:

      -n nice:指定nice值

    例子:

      nice -19 tar zcf pack.tar.gz documents


  renice:针对于已经启动的进程修改其nice值;       

    选项:

      -n nice:调整指定的进程的优先级,在原有的nice值的基础上,在加上此处指定的nice值;

      -g:指定进程组id; 

      -p<程序识别码>:改变该程序的优先权等级,此参数为预设值。 

      -u:指定开启进程的用户名。

    例子:

      renice 1 987 -u daemon root -p 32(将行程id为987及32的行程与行程拥有者为daemon及root的优先序号码加1)




本文转自谁等了谁 51CTO博客,原文链接:http://blog.51cto.com/12486569/1952128
相关文章
|
16天前
|
缓存 监控 安全
进程的介绍及相关命令
进程的介绍及相关命令
|
18天前
|
存储 Java 调度
Java多线程基础-1:通俗简介操作系统之进程的管理与调度
操作系统是一个复杂的软件,具备许多功能。其中,进程的管理与调度是与我们密切相关的。本文将对操作系统功能中进程管理与调度作出介绍。
27 0
|
24天前
|
Linux 调度
【进程概念】进程的优先级PRI和NI
【进程概念】进程的优先级PRI和NI
|
1月前
|
API 开发工具 Windows
LabVIEW中编程更改进程的优先级
LabVIEW中编程更改进程的优先级
27 0
|
1月前
|
Unix Linux
【Linux】一文了解【进程优先级相关知识点】&【PRI / NI值】背后的修正原理(13)
【Linux】一文了解【进程优先级相关知识点】&【PRI / NI值】背后的修正原理(13)
|
1月前
|
Linux
|
1月前
|
Web App开发 监控 Unix
Linux 常用命令汇总(七):进程管理 & 系统权限 & 用户授权
Linux 常用命令汇总(七):进程管理 & 系统权限 & 用户授权
|
1月前
|
监控 前端开发 安全
【专栏】介绍了前端工程师如何掌握SSH命令,包括SSH协议的基础知识、命令行操作如登录、文件传输、目录管理和进程管理
【4月更文挑战第29天】本文介绍了前端工程师如何掌握SSH命令,包括SSH协议的基础知识、命令行操作如登录、文件传输、目录管理和进程管理。在前端开发中,SSH用于部署项目、协同后端开发及服务器监控。文章还强调了使用密钥认证、配置别名及安全注意事项,并提醒开发者面对问题时如何解决。学习和熟练运用SSH是前端工程师适应复杂项目需求的关键。
|
1月前
|
Linux Shell 调度
【linux进程(四)】僵尸进程和孤儿进程概念&进程优先级讲解
【linux进程(四)】僵尸进程和孤儿进程概念&进程优先级讲解

热门文章

最新文章

相关实验场景

更多