进程介绍及查看工具

进程描述:

进程是硬盘中程序代码运行时的形态,进程是代码的实例.产生进程的方法便是将代码执行.
linux是多任务的操作系统,也就是说系统内核启动后,可以多个进程同时运行,或者呈现出多任务同时运行的假象,多任务的实现方法是基于时间上的轮循,即每个进程被CPU执行一段时间后替换为下一进程执行,或多进程是通过分配时间片实现的,将时间进行分片,时间也是物理量,同样可被分片.多进程确实都是在同时运行,但是拥有了时间的进程才可以继续演变.逻辑上的实现,物理上就是通过cpu执行时的轮循实现的.

多任务的操作系统的实现:

多任务的实现方式可以分为协作式多任务与抢占式多任务,协作式多任务应用在早期,
抢占式多任务对多进程之间的轮循控制是通过优先级实现的,在centos 4,5中系统一共有0-139共140个优先级,而在centos6中共有0-99共100个优先级。并且系统的优先级采用nice值进行最终的修正,nice优先级共有-20~+19共40个。最终的优先级是通过nice值修正过的优先级。
用户可以改改变进程的nice值来修正最终的优先级,在centos 45 中程序的初始优先级为120 ,nice值为0,所以通过修改nice值 ,改变最终的优先级的浮动范围为100-139之间。

进程的分类:

进程按照依赖关系可以分为,守护进程,前台进程。
守护进程:在系统启动时通过init.d 启动的进程。不需要依附在终端之上的进程。
前台进程:通过终端启动的进程,需要依附终端。并且占用终端的进程。
前台进程与守护进程可以互相转化。

进程按照硬件资源的占用可分为,CPU密集型,io密集型。

进程的状态:

运行态:running
就绪态:ready
睡眠态:
    可中断:interruptable
    不可中断:uninterruptable
停止态:stopped 暂停于内存,但不会被调度,除非手动启动
僵死态:zombie 结束进程,副进程结束前,子进程不关闭。

进程查看的工具:

ps
ps是一个古老的沧桑的进程管理工具,ps支持多种风格的选项格式。
ps :显示当前登录的终端上运行的进程。

Unix风格的选项 如:-a -ef
    -e显示所有的进程
-f显示所有进程的详细信息
-F显示所有进程的更更更详细的信息
-H以带有缩进的方式显示进程,以体现出进程间的父子关系
-C显示指定的进程的信息
    例:ps -C test.sh
    注:当脚本中不添加shebang时 -C无法查看脚本的进程信息
-o显示指定的属性信息
例:ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm

BSD风格的选项 如:a aux
    a 显示所有与终端相关的进程,即依附在终端上运行的进程
x显示所有与终端无关,即不依附终端的的进程,比如守护进程。
u显示进程所有者的信息 
f显示信息中进行缩进并用/\进行标示,以体现出进程的父子关系。
k以指定的属性进行排序
     例:ps axo stat,user,pid  k pid
o显示指定的属性信息
    例:ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm,%cpu,%mem,user,pri
    ruser:发起进程的用户
    pri:优先级,但是为ps内部的优先级。pri优先级0 - +39对应nice优先级 19 - -20 也就是是数值越大优先级越高
    ni:nice值
    psr:processor cpu编号
    rtprio :实时优先级

GNU风格的选项 如: --help

ps aux 显示的格式

[root@localhost ~]# ps aux |head

USER    
PID     
%CPU    
%MEM    
VSZ 
RSS 
TTY 
STAT    
START   
TIME    
COMMAND

用户 ID cpu占用率 内存占用率 承诺的内存 实际占用的内存 该进程依附的终端 状态 进程的创建时间 进程实际占用CPU的时间 进程的名称
注:此时显示的用户并非是发起进程的用户,而是实际生效的用户,比如SUID权限程序的属主。

ps显示STAT的状态种类:
R:running 正在运行中的进程
S:interruptable sleeping
D:uninterruptable sleeping
T:stopped
Z:zombie
+:前台进程
l:多线程进程
L:内存分页并带锁
N:低优先级进程
<:高优先级进程
s:session leader 会话(子进程)发起者

pstree
以树状结构显示进程信息,显示的信息中使用{}进行表示的是线程信息。
-p :显示进程的pid

top
在字符界面以交互的方式显示当前系统中的 负载信息,进程信息,
选项,运行top时指定
-d 指定刷新时间的间隔,默认为3秒钟
-b 显示所有的进程 ,在不指定-b选项时,只显示一屏信息。
-n 指定刷新次数,到达指定次数后退出。
全局显示设定,同样在运行时输入
s 修改刷新时间间隔
指定top显示进程的排序,在程序运行时输入
P按照占据CPU的百分比进行排序 ,即显示%CPU的栏
M按照占据内存的百分比进行排序,即显示%MEM的栏
T按照积累占据cpu的时长,即显示TIME+的栏
指定top显示的头部信息的格式,同样在程序运行输入,实现显示模式的切换,模式中包括不显示模式,
l系统运行时间 平均负载的信息切换。即第一行。
t tasks与%cpu 的显示信息显示模式切换,第二行与第三行
m memory信息 ,即内存信息显示模式切换,第四行与第五行
1 切换显示的cpu,在具有多颗cpu时有意义,第三行
其他操作
k 终止指定的进程,默认是指定cpu占用率最高的
w 保存文件
退出
q
top 的界面信息如下:

htop
彩色的 top

glances
glances 来自epel源,实现查看远程主机的进程信息。

nice
指定程序的nice值
例:
nice -n -20 ping 10.1.1.1 指定ping程序的nice值为-20.相当于系统优先级的 120+(-20)=100
nice -20 ping 10.1.1.1 指定ping程序的nice值,-20 -识别为选项。所以优先级会设置为20 但是nice的优先级最大只能为19,所以最终的nice值为19
nice –20 成功的指定nice值为20 -为选项 -20为nice值 ,但是命令要规范

pgrep
按照命令的指定的方式显示进程
-u 进程的最终生效者
-U 进程的真正发起者
-t terminal 与指定终端相关的进程
-l 显示进程名称
-a 显示完整格式的进程名称
-P 显示指定进程的子进程

pidof
显示指定进程的ID
可以用于脚本中判断程序是否已经启动,在指定程序没有启动时,$?为非零值
例:
pidof http 显示http的进程id号
if pidof http 使用if语句判断 http服务是否已经运行

pmap
显示进程对应的内存映射,等价于 cat/proc/{PID}/maps
-x 显示详细格式的信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章