温故Linux 操作系统07:进程管理
进程
程序(program)放置在储存媒体中,(如硬盘,光盘,软盘,磁带中),为实体文件的形态存在
进程:进程被触发后,执行者的权限与属性,程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),可以说,进程就是一个正在运行的程序,进程是资源分配的最小单元,程序并不是进程。
线程:一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。
1.查看进程:图形化查看
方法一:Application---->System Tools---->System Monitor
方法二:gnome-system-monitor
2.查看进程:PS命令查看
先介绍下进程的状态:
状态 | 含义 |
---|---|
R | ##该程序正在运行中 |
S | ##该程序正在睡眠状态,但是可被唤醒 |
D | ##不可被唤醒的睡眠状态 |
T | ##停止状态,可能是在工作控制或出错状态 |
Z | ##僵尸状态,程序已经终止但无法移除至内存外 |
ps l
即可查看进程的状态``
STAT即代表进程的状态
在上面我们初步接触到了如何命令查看进程(状态),即ps命令,下面介绍一些其他的ps命令
2.1单参数ps命令
命令 | 参数 | 含义 |
---|---|---|
ps | -A | ##所有进程 |
x | ##列出系统中所有运行的进程,包含tyy(字符输出设备的)进程 (通常与a参数一起使用,可列出比较完整的信息) |
|
-a | ##在当前环境中运行的进程,不包含环境信息 | |
a | ##在当前环境中运行的所有进程 | |
-u | ##显示进程用户信息 | |
f | ##显示进程的父子关系 | |
e | ##显示进程的详细信息(系统资源的调用) | |
l | ##长列表显示进程的详情 |
2.2组合参数ps命令
有时候仅仅单参数远远达不到我们学习和工作的需求,此时就需要我们灵活地组合一些参数来使用
命令 | 参数 | 含义 |
---|---|---|
ps | aux | ##显示系统中所有进程并显示进程用户 |
ef | ##显示进程详细信息并显示进程父子关系 | |
ax | ##显示当前系统中的所有进程 | |
pstree | ##显示当前系统的进程树 |
最常用的方法是ps aux
,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作
ps aux
产生的表头信息:
USER:进程是哪个用户产生
PID:进程的ID号
%CPU:进程占用CPU资源的百分比,占用越高,进程越耗费资源
%MEM:进程占用物理内存的百分比,占用越高,进程越耗费资源
VSZ:进程占用虚拟内存的大小,单位KB
RSS:进程占用实际物理内存的大小,单位KB
TTY:进程在哪个终端运行,tty1-tty6是本地字符界面终端,tty7是本地图形终端。pts/0-255代表虚拟终端
STAT:进程状态:R(运行),S(睡眠),T(停止),s(包含子进程),+(位于后台),Z(僵死),<(优先级高),N(优先级高)
START:进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND:进程是哪个命令产生
进程树:
进程树的根为系统初始化进程
2.3显示进程指定信息
ps ax -o xxx ##显示所有进程的指定信息(不加ax则为静态查看)
-----------------------------------------
ps ax -o comm ##进程名称
ps ax -o user ##进程所有人
ps ax -o group ##进程所有组
ps ax -o %cpu ##进程cpu使用率
ps ax -o %mem ##进程内存使用率
ps ax -o pid ##进程id
ps ax -o nice ##进程优先级
ps ax -o stat
在显示进程指定信息的时候,-o后面的参数可以组合使用,只需在参数之间加上逗号即可
3.进程的优先级
进程的优先级范围:-20~19
优先级查看:ps ax -o pid,nice,comm
,表头为NI
指定某个优先级开启进程:
nice -n 优先级数字 进程名称
例:nice -n -5 firefox & ##开启firedfox并且指定程序优先级为-5
注:&表示把进程打入后台
例:
改变进程的优先级:
renice -n 优先级数字 进程pid
renice -n -10 3166 ##改变3166进程的优先级为-10
4.环境中进程的前后台调用
命令或者快捷键 | 说明 |
---|---|
jobs | ##查看被打入环境后台的进程 |
ctrl+z | ##把占用终端的进程打入后台 |
fg jobsnum | ##把后台暂停的进程运行 |
comm & | ##让命令直接在后台运行 |
上图是直接运行(前台运行)firefox,然后ctrl+z把firefox打入后台:
依次在后台运行一个新的firefox,然后查看后台运行进程,然后把后台暂停掉的程序重新运行
注:+表示默认操作,-表示次默认操作
5.进程信号
常用的进程信号:
1 ##进程重新加载配置
2 ##删除进程在内存中的数据
3 ##删除鼠标在内存中的数据
9 ##强行结束单个进程(不能被阻塞)
15 ##正常关闭进程 (可能会被阻塞)
18 ##运行暂停的进程
19 ##暂停某个进程 (不能被阻塞)
20 ##把进程打入后台 (可以被阻塞)
man 7 signal ##查看信号详细信息
kill -信号 进程pid ##发起信号
killall -信号 进程名字
信号2相当于快捷键ctrl+c
kill -9 firefox
示范:
6.top命令
top命令即为进程的动态监控,可以实时检测进程信息
执行top后,再键入如下命令的作用
-----------------------------
1 ##显示cpu每个核的负载
s ##调整刷新频率
c ##cpu负载排序
m ##内存使用量排序
h ##查看帮助
u ##查看指定用户进程
k ##对指定用户发起信号
q ##退出
例如,调整刷新频率为1秒,则键入s后输入1然后回车:
top命令前五行队列信息:
- 第一行:任务队列信息
20:14:43代表系统当前时间,up 34 min代表系统运行了34分钟,3 users代表系统有三个登录用户,0.00,0.03,0.08分别代表1,5,15的平均荷载
注:
系统运行时间:时间越长,表示服务器运行的时间越长,但并不好,应该定时重启服务器,让状态归0,降低故障率
平均负载:通常认为小于1,但并不准确
- 第二行:进程信息
149 total 代表系统中的进程数为149个,后面的意思参考英文
- 第三行: cpu信息,
96.0 id 代表空闲cpu的百分比为96%
- 第四行:物理内存信息
free为空闲物理的内存数量,buffers为作为缓冲的内存数量
- 第五行:交换分区信息
free为空闲交换分区大小,cached Men为作为缓存的分区大小
注:
缓冲:加速数据写入;缓存:加速数据读取