引 言
程序(program)放置在储存媒体中(如硬盘、光盘、软盘等),为实体文件的形态存在
进程:程序被触发后,执行者的权限与属性,程序的程序代码与所需数据等都会被载入内存中,操作系统并给予 这个内存的单元一个识别(PID),可以说,进程就是一个正在运行中的程序。
进程状态:
状 态 | 说 明 |
R(running) | 该程序正在运行 |
S(Sleep) | 该程序目前属于睡眠状态(idle)但可以被唤醒(signal) |
D | 不可被唤醒的睡眠状态,通常进程可能在等待 I/O 的情况 |
T(Stop) | 停止状态,可能是工作在控制(背景暂停)或除错(traced)状态 |
Z(Zombie) | 僵尸状态,程序已经终止但却无法被移除至内存外 |
一、进程的查看
在linux系统中为我们提供了两种查看方式:
1、利用图形进行查看
[root@localhost Desktop] gnome-sysem-monitor ###进行命令的查看
具体操作如下:
2、使用ps的相关命令查看
(1)ps后跟单个字母
命 令 | 说 明 |
ps -A | 查看系统中的所有进程 |
ps -a | 在环境中的所有进程,不包涵环境的信息 |
ps -u | 显示进程用户信息 |
ps a | 显示当前环境中运行的进程,包含环境信息 |
ps x | 列出系统中所有运行的进程,包含tty输出设备 |
ps f | 显示进程的父子关系 |
ps e | 显示 进程详细的信息(系统资源的调用) |
ps -A
ps -a
ps -u
ps a
ps x
ps f
ps e
3、ps以组合的形式出现
命 令 | 说 明 |
ps aux | 显示系统中所有进程并显示进程的用户 |
ps ef | 显示进程详细信息并显示进程的父子关系 |
ps ax | 显示当前系统中的所有进程 |
pstree | 显示当前系统的进程的树型关系 |
ps aux
ps ef
ps ax
pstree
4、显示进程指定信息:ps -o xxx ##显示进程的指定信息
命 令 | 说 明 |
ps -o comm | 显示进程名称 |
ps -o user | 显示进程的所有人 |
ps -o group | 显示进程的所有组 |
ps -o %cpu | 显示进程cpu的占用情况 |
ps -o pid | 显示进程的pid |
ps -o nice | 显示进程的优先级 |
ps -o %mem | 显示进程内存的使用率 |
ps -o comm
ps -o user
ps -o group
ps -o %cpu
ps -o pid
ps -o nice
ps -o %mem
以下为多个进程信息的演示:
4、进程的排序
命 令 | 说 明 |
ps -o --sort=+%cpu(-%cpu) | 将cpu的占用进行排序,+表示正序 -表示倒序 |
ps -o --sort=+%mem(-%mem) | 将内存的占用进行排序,+表示正序 -表示倒序 |
ps -o --sort=+%cpu
ps -o --sort=-%cpu
ps -o --sort=-%mem
ps -o --sort=+%mem
ps -o comm --sort=+%mem
例题:查看占内存排前五的pid 部分
情况一:查看内存排前五的pidbu部分包含注解行
情况二:查看进程占内存排名前五的部分只显示pid
二、stat中显示的信息
参数如下:
参 数 | 说 明 |
S | 表示进程的状态 |
l | 表示内存中有锁定空间 |
N | 表示优先级低 |
< | 表示优先级高 |
+ | 表示进程正在前台运行 |
s | 表示顶级进程 |
如图:
STAT
Ss :S表示进程的状态,s表示顶级进程。表示bash的进程等级最高
T :表示firefox处于暂停状态
R+ :表示ps进程正在运行(正在被cpu处理)
打开控制系统(System Monitor) 将firefox的进程等级(Chang Priority)调到High
由上图可得firefox的运行状态由T变为T< 进程等级变高
同理,打开控制系统(System Monitor) 将firefox的进程等级(Chang Priority)调到Low
由上图可得firefox的运行状态由T变为TN进程等级低
三、进程优先级
1、进程的优先级范围: ~20~19 (优先等级越高对应的数字就越小)
2、优先等级的查看
命令:ps -o nice,comm,pid
3、进程优先级的指定
格式: nice -n 优先级数字 进程名称
例如:nice -n -5 gedit
4、进程优先级的修改
格式:renice -n 设定的优先级数字 目标进程的pid
如:将下列gedit的进程等级由0改为-8
四、环境中进程的前后台调用
命 令 | 说 明 |
jobs | 查看被打入环境后台的进程 |
Ctrl + z | 把占用终端的进程打入后台 |
fg jobsnum | 把后台进程调回前台 |
bg jobsnum | 把后台暂停的进程运行 |
comm & | 让命令直接在后台运行 |
(1) job : 查看被打入后台进程并且显示工号
(2) Ctrl + z : 将当前占用终端的进程打入后台
(3) fg (工号): 将后台进程调回前台
(4) bg (工号): 将后台暂停的进程运行起来
(注:将firefox和gedit两个进程用 Ctrl + z 命令 打入后台,再用 jobs 命令可以查看后台的进程
用 bg 命令将后台暂停的进程运行, fg命令把后台运行的进程调回到前台)
(5)进程名称 & : 让该进程直接在后台运行
四、进程信号
信号等级 | 说 明 |
1 | 进程重新加载配置 |
2 | 删除进程在内存中数据 |
3 | 删除鼠标在内存中的数据 |
9 | 强行结束单个进程 (不能被阻塞) |
15 | 正常关闭进程(可能会被阻塞) |
18 | 运行暂停的进程 |
19 | 暂停某个进程(不能被阻塞) |
20 | 把进程打入后台(可以被阻塞) |
man 7 signal | 查看信号详细信息 |
格式一: kill 信号 进程的IP
1、删除进程在内存中的数据
kill -2 进程IP
2、强行结束单个进程
kill -9 进程IP
3、正常关闭进程(可能被阻塞)
kill -15 进程IP
4、运行暂停的进程
kill -18 进程IP
5、暂停某个进程(不能被阻塞)
kill -19 进程的IP
6、把进程人打入后台(可能被阻塞
kill -20 进程的IP
7、查看信号的详细信息
man 7 signal
格式二:killall -信号 进程的IP
格式三: pkill -u 用户名 -信号
五、进程的动态监督(top指令)
相关参数如下:
参 数 | 说 明 |
1 | 显示cpu每个负载 |
s | 调整刷新频率 |
c | cpu负载排序 |
m | 内存使用量排序 |
h | 查看帮助 |
u | 查看指定用户的进程 |
k | 对指定用户进行终始 |
q | 退 出 |
1、显示cpu每个核的负载(1)
2、调整刷新频率(s)
3、cpu负载排序(c)
4、内存使用量排序(m)
5、查看帮助(h)
6、查看指定的用户(u)
(注:先切换到student用户,再切换到root用户,按u键输入student按回车键即可查询student的用户信息)
7、对指定用户发起终始信号(k)
(注:先切换到student用户,再切换到root用户,按 u 键输入student按回车键即可查询student的用户信息,再按下 k 键输入student对应的pid,输入系统参数系统默认为15,在此我们选择输入9,回车查看结果,student被关掉,按q退出)