初识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
下一篇 2016-06-01

相关推荐

  • Linux程序包管理相关

    前言 首先说说一个软件的诞生过程: 程序员用编程语言写文本格式的源代码,但是计算机只能读懂二进制文件,那么就需要将源代码转换成二进制格式,这个过程称为编译。编译用的工具称为编译器,编译器有很多种,在Linux上常用gcc这个编译器。利用编译器,得到二进制格式的文件(二进制程序(Windows上.exe.msi,Linux.elf)、库文件、配置文件、帮助文件…

    Linux干货 2018-01-04
  • grub安装

    创建两块磁盘分区 创建boot目录和根本目录rootfs mkdir /mnt/boot mkdir /mnt/rootfs mount /dev/sdb1 /mnt/boot mount /dev/sdb2 /mnt/rootfs 安装gurb gurb-install –root-directory=/mnt /dev/sdb1 在/mnt/…

    Linux干货 2017-11-14
  • 利用heartbeat构建高可用http

    一、实验准备:  1)实验环境:          2)同步时间;确保可以使用主机名通信;确保可以使用ssh秘钥方式进行彼此登录;由于是两台设备,需要仲裁;  确保可以使用主机名通信 web1修改hosts文件如下: 172.16.2.12 web1.linux.com…

    Linux干货 2015-07-08
  • 马哥教育网络版25期+第一周作业

    1、描述计算机的组成及其功能 计算机是由CPU,控制器,RAM,输入设备,输出设备组成的 2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别 现如今主流的LINUX发行版系列主要有: Debian,Slackware,Redhat,这些发行版都是基于GUNLinux开发的,不过是由不同的组织或团体开发并发行的。 3、描述Linux的哲学思想,…

    Linux干货 2016-12-05
  • 文件管理

    echo“- – -”>/sys/class/scsi_host/host2/scan扫描新装的硬盘,不需要重启 磁盘管理三大步骤:分区,管理,挂载 设备文件创建mknob cdrom /mnt/cdrom 并行接口针多,但是传的速度过快,会对数据造成干扰 vLinux的数据一般都存储在分区空间里 学习linux的磁盘管理就必须:…

    Linux干货 2016-11-27
  • MAN手册使用指南及快捷键键位整理

      MAN手册使用指南及快捷键键位整理 Man mnual 手册说明          基本使用:man 命令 Man一共可分为八个章节: man1,man2,man3,man4……man8 1:用户命令 2:系统调用 3:C库调用 4:设备文件及特殊文件 5:文件格式…

    Linux干货 2016-10-18

评论列表(1条)

  • stanley
    stanley 2016-06-01 15:34

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