初识linux的进程管理与作业控制(第十二天)

     进程:linux中,运行每一个二制进程序或触发每一个事件,系统都会将它定义为一个进程,并给一个进程号,称为PID。同时依据触发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设置。

          如,执行base后,系统就会给base一个PID号,下面的15106就是base的进程号。

blob.png

进程创建 

内核创建第一个进程init,其他所有的进程都是由init(systemd)创建,是init(systemd)的子进程,init(systemd)的进程号是1
init (centos7的是systemd)
父子关系
  进程:都是父进程创建,所有的进程都init或systemd的子、孙、孙孙进程
  父进程使用的空间,子进程也使用父进程的空间。一旦子进程需要修改进程的数据时,系统会复制一份父进程的空间,给预子进程专门使用

blob.pngblob.png

    进程优先级:

优先级范围0-139
   0-99:实时优先级,数字越大,优先级越高
   100-139:静态优先级,数字越小,优先级越高。
   调整优先级的Nice值:
     -20到19,其中-20对应100,19对应139,以此类推
    备注:root用户的nice值范围是-20至19,普通使用的1-19,且普通用户只能把nice的值调大,不能调小。如原来nice值是5,那么普通用户调整的nice只能大于5

进程的状态

进程状态:
  运行状态:running
  就绪状态:ready
  睡眠状态:
    可中断:interruptable
    不可中断:uniterruptable
  停止状态:sotp  暂停于内存中,但不会被调试,除非手动启动之

  查看系统进程树命令 pstree

常用选项有:
-p 同时显示每个进程的PID号

blob.png


静态进程查看器命令 PS

    PS命令是在执行的那一瞬时,对系统上所有的进程进行一个快照,并显示出来的。

ps [option..]
常用option有:
 -l 显示较详细的PID信息
 u:以用户为中心组织进程状态信息显示
 a:以终端相关的进程
 x:与终端无关的进程
 -f 显示完整的信息
 -e 相当于 ax
常用的组合有:aux(没有-) -ef

      ps -l 说明

blob.png

划画的选项说明:
F 代表进程的权限标志:F的值常见有4与1,4代表的权限是root,1代表此子进程仅可以复制(fork)而无法实际执行(exec)
S 代表运行状态:S 表示处于睡眠但可唤醒、R 表示处于运行状态、D表示处于睡眠但不可唤醒、T表示停止状态、Z是僵死状态
PID 是进程的PID号
PPID 是进程的父进程PID号。在执行ps -l后,我又执行了bash命令,可通过PPID的值,确定此bash的父进程号是3367
C 表示CPU的使用率,以百分比显示
PR是priority,表示优先级
NI是nice的缩写,表示nice值
ADDR 是指此进程在内存中的哪个部分,一般显示"-"
SZ 表示此进程使用的内存
WCHAN 表示进程是否正在运行,可结合S位置的状态查看 
TTY 是终端位置
TIME 使用的CPU时间
CMD 全称是commadn,表示由此进程是由哪个命令执行的

        查看系统上所有的进程  px aux

blob.png

aux运行结果说明:USER  进程的属主
PID 进程的ID号
%CPU 占据CPU的时间集百分比
%MEM 占据内存的时间集百分比
VSZ Virtual memory SiZe,虚拟内存集
RSS RSS: ReSident Size, 常驻内存集,不能被交换到交换分区的数据
TTY 哪个终端启动的信息,问号?表示与终端无关
STAT 进程的状态信息
    R:running
    S:interruptable sleeping 可中断的睡眠状态
    D:uniterruptable sleeping 不可中断的睡眠状态
    T:stop 停止状态
    Z:zombie假死状态
    +:前台进程 
    l:多线程进程
    <:高优先级进程 
    N:低优先级进程
    s:session leader 一个进程启动时,有时会同时引导其他多个进程启动,如果此进程被停止,那其他进程也将被停止
START:启动的时间
TIME:运行的累计时时间
COMMAND :由哪个命令启动的

 基于命令名称或进程PID显示相关属性命令 pgrep 

pgrep 常用选项有:
-o:仅显示找到的最小(起始)进程号 
-n:仅显示找到的最大(结束)进程号 
-l:显示进程名称
-P:指定父进程号 
-g:指定进程组
-t:指定开启进程的终端 
-u:指定进程的有效用户ID

blob.png

动态查看进程情况top命令

常用选项:
-d 设定刷新的时间,默认是5s。top -d 1即每1秒刷新一次
-b 以批次的方式执行top 
-n 与-b结合使用,意思是需要执行多少批次的top 
-p 查看指定PID的信息  
内置功能键:
p:以占据CPU的百分比 
M:占据内存的百分比 
T:累积占据CPU时长 
? 显示在top可以输入的命令 
N 以PID值排列 
K 给指定的PID发送一个signal信号 
r 调整指定的PID的nice值  
q 离开  
1 数字1,显示多个CPU的情况

    top运行说明  

blob.png

PID 是进程ID
USER 是属主
PR 是优先级
NI 是Nice值
VIRT 虚拟内存值
RES 常信内存值
SHR 共享内存大小值
S 进程运行的当前状态
%CPU 占据CPU百分比
%MEM 占据内存百分比
TIME+ 累计运行时长
COMMAND 启动进程命令

   修改指定进程的优先级

blob.png

blob.png

blob.png

修改完成,并发sshd PID15102的优先级从20调整成了25,而nice值为5

      终止进程

按k键,可指进程根据发送的信号执行相应的动作。
可发送的信号:
[root@mfc ~]# kill -l
 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL10) SIGUSR1
11) SIGSEGV12) SIGUSR213) SIGPIPE14) SIGALRM15) SIGTERM
16) SIGSTKFLT17) SIGCHLD18) SIGCONT19) SIGSTOP20) SIGTSTP
21) SIGTTIN22) SIGTTOU23) SIGURG24) SIGXCPU25) SIGXFSZ
26) SIGVTALRM27) SIGPROF28) SIGWINCH29) SIGIO30) SIGPWR
31) SIGSYS34) SIGRTMIN35) SIGRTMIN+136) SIGRTMIN+237) SIGRTMIN+3
38) SIGRTMIN+439) SIGRTMIN+540) SIGRTMIN+641) SIGRTMIN+742) SIGRTMIN+8
43) SIGRTMIN+944) SIGRTMIN+1045) SIGRTMIN+1146) SIGRTMIN+1247) SIGRTMIN+13
48) SIGRTMIN+1449) SIGRTMIN+1550) SIGRTMAX-1451) SIGRTMAX-1352) SIGRTMAX-12
53) SIGRTMAX-1154) SIGRTMAX-1055) SIGRTMAX-956) SIGRTMAX-857) SIGRTMAX-7
58) SIGRTMAX-659) SIGRTMAX-560) SIGRTMAX-461) SIGRTMAX-362) SIGRTMAX-2
63) SIGRTMAX-164) SIGRTMAX
 
常用信号说明,
1)SIGHUP  通知进程在不关闭进程的情况下重读配置文件 
2)SIGINT 中止正在运行的进程,相当于ctrl+c
9)SIGKILL 强制关闭进程 
15)SIGTERM 正常终止正在运行的进程。
18)SIGCONT:让处于停止状态的进程启动
19)SIGSTOP:让进程转入到停止状态

blob.png

blob.png

blob.png

    运行top后,屏幕显示有限,无法查看全部的进程信息,可以通过输出重定向,把top进行的批次信息保存到指定文件中,如果有需要,可以指定某个时间段运行,以保存指定时间的系统运行情况

blob.png

    

    动态查看进程变化命令top的变种命令 htop

    功能比top强大,可以直接通过鼠标操作,显示画面详细而易懂。

blob.png

blob.png

虚拟内存查看命令 vmstat    

    vmstat [options] [delay [count]]

blob.png

说明:
procs:
    r:等待运行的进程个数。如果是单个CPU,有超过3个等运行的进程数,则表示CPU性能不足。
    b:处于不可中断睡眠状态的进程个数(被阻塞的队列个数)
memory:
    swdp:虚拟内存的使用总量
    free:物理内存的空闲总量
    buffer:用于buffer的内存总量
    cache:用于cache的内存问题
swap:
    si:数据进入swap中的数据速率(kb/s)
    so:数据离开swap的数据速率(kb/s)
io:
    bi:从块设备读入数据到系统的速率(kb/s)
    bo:保存数据到块设备的速率(kb/s)
system:
    in:中断速率
    cs:进程切换速率
cpu:
    us 使用的比率
    sy 内核使用比率
id 空闲比率
wa 等待IO完成所需要的时间比率,wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)
st 被虚拟化技术使用的比率

        显示汇总信息vmstat -s

blob.png

    dstat  可以实时的监控cpu、磁盘、网络、IO、内存等使用情况,且彩色、默认每1秒刷新一次的动态显示

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

    dstat 默认使用选项-cdngy

常用选项
-c 显示cpu的内核、用户、空闲、写入等待、硬中断、软中断等信息,默认自带此项
-C #,#....total 显示单个或汇总
-d 显示磁盘的读写速率
-D #,#....total 显示单个或汇总
-g 显示page(内存页面)换进换出的统计信息
-m 显示memory相关统计数据
-n 显示网络相关统计数据
-p 显示进程相关统计数据 
-r 显示I/O读写请求相关的统计数据 
-t 显示系统时间
-y 显示系统信息
-f 显示文件系统的打开文件的相关信息
--ipc 显示进程间通信的相关统计信息
--top-cpu 显示最耗CPU资源的进程信息
--top-io 显示最点用IO性能的进程信息
--top-mem 显示最耗内存的进程信息
--top-latency 显示延迟最大的进程信息
--tcp 显示TCP信息
--udp 显示UDP信息
--socket 用来显示tcp udp端口状态
--raw 显示
--unix 
说明:
cpu:hiq、siq分别为硬中断和软中断次数。 
system:int、csw分别为系统的中断次数(interrupt)和上下文切换(context switch)。

blob.png

glances命令   可以监视 CPU,平均负载,内存,网络流量,磁盘 I/O,其他处理器 和 文件系统 空间的利用情况。

glances  [-bdehmnrsvyz1]  [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--pass‐word] [-t refresh] [-f file] [-o output]
glances内置命令如下:
  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          z  Show/hide processes list
  y  Show/hide hddtemp stats          q  Quit (Esc and Ctrl-C also work)
常用选项:
-b:以byte为单位显示网卡数据速率 
-d:关闭磁盘IO模块
-f /filne_name/file_name设定输入文件位置及格式
-o {HTML|CSV} 输出格式
-m 禁用mount模块
-n 禁用网络模块
-t # :延迟时间时隔
-1:每个CPU的相关数据信息单独显示
     
C/S模式下运行的glances命令
    服务模式:
        glances -s -B ip_address #指定网卡的IP地址
    客户端模式:
        glances -c server_ipaddress #连接服务器的IP地址,链接成功后可查看服务器的glances的信息

blob.png

        开启服务器模式

blob.png


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

    kill可将指定的信息送至程序。默认发送的信号是SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信号尝试强制删除程序。

选项如下:
-a:当处理当前进程时,不限制命令名和进程号的对应关系; 
-l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称; 
-p:指定kill 命令只打印相关进程的进程号,而不发送任何信号; 
-s <信息名称或编号>:指定要送出的信息; -u:指定用户

blob.png

作业管理jobs命令    

作业分类:
    前台作业:在终端中显示、让用户操作的作业称为前台作业
    后台作业:可以自动运行、无法通过ctrl+c 取消的作业,可以通过fg命令调用。
        后台作业有三种状态:运行状态(running)和 停止状态(stop)、完成状态(done)。后台作业处于运行状态的进程,必须不是交互的。

          把命令从前台转到后台 ,在执行命令的后面加“&”

blob.png

        交互式转到后台ctrl+z

blob.png

blob.png

        调用fg、终止作业kill、

blob.png

通过kill,终于处于后台的作业 kill -s -s 9 %作业号 (作业号前加%,否则会误以为对进程PID发送信息)

blob.png

通过bg命令,把处于 stop状态的作业,转换为running(运行)状态。

blob.png

原创文章,作者:Net20-deamon,如若转载,请注明出处:http://www.178linux.com/17292

(0)
Net20-deamonNet20-deamon
上一篇 2016-06-01 15:33
下一篇 2016-06-01 15:35

相关推荐

  • Linux程序包管理rpm、yum、源码编译

    概述:     众所周知,Linux操作系统本身,必须要借助额外的一些软件,才能完成某些应用的,操作系统如果没有应用程序的填充,就无法创造出生产力,这样即使再完美的操作系统,也毫无用处。那么本章就简要介绍一下Linux系统上对程序包的管理,分为以下三个部分:     1、程序包的…

    Linux干货 2016-08-24
  • awk学习笔记

        awk是一种模式扫描和处理工具,相对于grep的查找,sed的编辑,它在对数据进行分析生成报表时显得尤为强大。awk通过逐行遍历一个或多个文件的方式,查找模式匹配到的行,而后以指定的分隔符(缺省为空格)进行切片,然后针对切片数据进行处理和分析。事实上,gawk有自己的语言,其本身就相当于一个解释器,允许用户创建…

    Linux干货 2015-08-04
  • N28-第二周博客作业

    常用通配符
    *:表示任意长度的任意字符;

    ?:表示任意的单个字符;

    []:表示在指定范围内的单个字符:[a-z];

    [^]:脱字符,是取反的意思,即在指定范围以外的任意字符,如 [^0-9]表示除数字以外的一切字符。

    [:digit:] 表示所有的数字,相当于0-9

    [:lower:] 表示所有的小写字母

    [:upper:] 表示所有的大写字母

    [:alpha:] 表示所有的字母,

    [:alnum:] 相当于[0-9a-z]

    [:space:] 相当于空白字符

    [:punct:] 表示所有的标点符号

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

    2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

    3、请使用命令行展开功能来完成以下练习:

    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

    (2)、创建/tmp/mylinux目录下的:
    mylinux/
    ├── bin
    ├── boot
    │?? └── grub
    ├── dev
    ├── etc
    │?? ├── rc.d
    │?? │?? └── init.d
    │?? └── sysconfig
    │?? └── network-scripts
    ├── lib
    │?? └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │?? └── local
    │?? ├── bin
    │?? └── sbin
    └── var
    ├── lock
    ├── log
    └── run

    4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

    5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

    6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

    7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

    8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

    9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

    10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

    11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

    12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

    Linux干货 2017-12-11
  • 一起学DHCP系列(五)指派、获取

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/163168     本节将主要讲述DHCP客户端获取IP的过程,也是此系列中非常重要的一节。   &…

    Linux干货 2015-03-25
  • MySQL Replication (MySQL的主从复制)

    MySQL Replication(MySQL的主从复制) 主从数据库的工作模型: 工作要点:1、主服务器要开启二进制日志 2、从服务器要有一个用户账户,这个账户要有权限到主服务器上请求二进制事件,请求完后保存到本地。 3、从服务器上要有一个线程,从中继日志中不断的读事件,在本地replay。 Master/Slave    &…

    Linux干货 2016-11-21
  • 马哥教育网络班21期第6周课程练习

    一、vim编辑器的使用 二、练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@www ~]# cp /etc/rc.d/rc.sysinit /tmp [root@www ~]# l…

    Linux干货 2016-08-15

评论列表(1条)

  • stanley
    stanley 2016-06-01 15:34

    已置顶,欢迎加入免检家庭