初识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)
上一篇 2016-06-01 15:33
下一篇 2016-06-01 15:35

相关推荐

  • 从“黑掉Github”学Web安全开发

    Egor Homakov(Twitter: @homakov 个人网站: EgorHomakov.com)是一个Web安全的布道士,他这两天把github给黑了,并给github报了5个安全方面的bug,他在他的这篇blog——《How I hacked Github again》(墙)说明了这5个安全bug以及他把github…

    Linux干货 2016-08-15
  • 8月9日sed命令

    sed命令及vim基础使用命令 处理文本的工具sed stream editor,行编辑器    sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有…

    Linux干货 2016-08-11
  • centos启动流程

    1、加电自检(power on system test POST) 加电,就是按下电源键使电脑主机通电,在诸多硬件设备中有一个被称为CMOS设备在计算机启动的过程中起到了至关重要的作用,CMOS在加电之后会启动保存在它上面的BIOS程序,即基本输入输出系统(Basic Input Output System)。自检,主要是检测各…

    Linux干货 2016-09-11
  • 进程管理

    进程管理 内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能 用户模式(空间),内核模式(空间) Process(进程):运行中的程序的一个副本         存在生命周期 task struct:内核的结构体 Linux内内核存储进程信息的固定格式:tas…

    Linux干货 2016-09-10
  • VIM入门及进阶

    什么是VIM?     VIM类似于Vi编辑器, 它是一个功能强大、可高度定制的文本编辑器, 是一个纯粹的自由软件。注意:vi和vim不完全相同 为什么要使用VIM?     相信大多数人接触Linux时使用的第一个文本编辑器都不是VIM,很多人看到VIM复杂的命令操作就望而祛步…

    系统运维 2016-03-04
  • 防护墙服务

    iptables的基本认识        Netfilter组件: 内核空间,集成在linux内核中 扩展各种网络服务的结构化底层框架 内核中选取五个位置放了五个Hook(勾子)function(INPUT、OUTPUT、FORWARD、PREROUTING、POST ROUTING),而这五个hoot functio…

    2017-08-21

评论列表(1条)

  • stanley
    stanley 2016-06-01 15:34

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