系统进程及服务的控制
一.进程理解
1.进程
进程就是系统未完成并且正在进行的工作
- 程序是静态的文件
- 进程是运行中的程序的一个副本
- 进程存在生命周期(准备期,运行期,终止期)
2.进程状态
状态 | 定义 |
---|---|
R(TASK_RUNNING) | 可执行状态(RUNNING,READY) |
S(TASK_INTERRUPTIBLE) | 可唤醒睡眠状态 |
D (TASK_UNINTERRUPTIBLE) | 不可唤醒睡眠状态 |
T(TASK_STOPPED) | 暂停状态 |
z( EXIT_ZOMBIE) | 僵死态 |
3.进程与线程
- 进程:在执行的过程中,是从上到下依次进行的,它中间的数据流是从上到下贯穿的。进程是资源调配的最小单位
- 线程:是进程的最小单位
二.查看进程
1.pstree查看进程树
systemd守护进程:最大作用是对我们的这些进程进行初始化
2.ps命令
【1】man ps查看
UNIX选项:可以分组,前面必须有一个破折号
BSD选项:可以分组使用,但不能与破折号一起使用
【2】ps显示当前命令执行时进程状态
参数 | 作用 |
---|---|
a | 显示与终端相关进程(BSD) |
x | 显示所有与终端无关进程(BSD) |
u | 以用户为归类来显示进程状态信息(BSD) |
f | 层级结构显示进程信息 |
o | 指定查看选项,pid,comm,nice,pri,pcpu,stat,ppid |
-f | 显示完整格式信息(unix) |
-e | 显示所有进程(uinx)) |
-H | 层级结构显示进程的相关信息 |
-o | 指定查看选项,pid,comm,nice,%cpu,%mem,nice |
BSD风格
ps axo pid,comm,nice,stat,user,group,%cpu,...
UNIX风格
ps -eo xxx ##显示进程的指定信息
comm ##进程名称
user ##进程所有人
group ##进程所有组
%cpu ##进程cpu使用率
%mem ##进程内存使用率
pid ##进程id
nice ##进程优先级
练习:
- f 进程的树形结构
3135是2886的一个子进程
- -e显示所有进程(uinx)
- -f 显示完整格式信息
- BSD o指定查看选项
- Unix -o 指定查看选项
【3】ps常用组合
常用组合 | 作用 |
---|---|
ps aux | 显示系统中所有进程并显示进程用户 |
ps ef | 显示进程详细信息并显示进程父子关系 |
ps ax | 显示当前系统中的所有进程 |
pstree | 显示当前系统的进程树显示进程指定信息 |
练习:
- ps ax
- ps ef
- ps aux显示进程指定信息面试点
字段 | 解释 |
---|---|
USER | 用户名称 |
PID | 进程id |
%CPU | cpu用量百分比 |
%MEM | 内存用量百分比 |
VSZ | 占用虚拟内存大小 |
RSS | 常驻内存集大小 |
TTY | 字符终端 |
STAT | 进程状态 |
TIME | 占用cpu时间 |
COMMAND | 进程名称 |
3.进程排序
ps ax --sort=+%cpu|-%cpu
%cpu表示正序;-%cpu表示倒叙排列
4.pgrep显示指定信息进程
参数 | 作用 |
---|---|
-u uid | 显示指定用户进程 |
-U name | 显示指定用户进程 |
-t tty | 显示指定终端进程 |
-l | 显示进程名称 |
-a | 显示完整格式进程名 |
-P pid | 显示指定进程的子进程 |
练习:
5.pidof
根据进程名称获取pid
三.top命令
查看进程命令,实时显示
1.top显示进程信息详解
进程信息 | 作用 |
---|---|
top | 系统当前时间 |
up | 系统运行时长 |
user | 登录当前系统的用户数量 |
load average | 平均负载1分钟 5分钟 15 分钟的队列长度(uptime) |
task | 任务 |
mem | 物理内存 |
swap | 交换分区占用 |
%cpu | cpu占用百分比 |
补充:
%cpu cpu占用百分比
• us 用户空间
• sy 内核空间
• ni 进程优先级调整时间
• id 空闲时间
• wa 等待输入输出(io)的时间
• hi 处理硬件中断
• si 处理软件中断
• st 被虚拟化程序占用的百分比
load average 数字越大,表示cpu负载越大
2.top内部参数
参数 | 作用 |
---|---|
P | 按cpu百分比排序 |
M | 内存百分比 |
T | 累计占用cpu时间 |
l | 开启/关掉uptime信息 |
t | 开启/关闭task&cpu信息 |
s | 调整刷新频率 |
k | 终止进程 |
u | 查看指定用户进程 |
练习:
- 调整刷新频率
- 终止进程
- 关闭task&cpu信息 + 按内存百分比排序
3.top命令参数
参数 | 作用 |
---|---|
-d | 指定刷新间隔 |
-b | 以批次方式显示 |
-n | 显示批次数量 |
练习:
top命令默认3s刷新一次
- 指定刷新间隔为1s
[root@workstation ~]# top -d 1
- 按批次显示
[root@workstation ~]# top -b -d1 -2
四.进程优先级
1.优先级范围
- 对Linux而言优先级被划分成固定个数(0-139)
- 1-99为实时优先级,数字越大优先级越高,不用手动处理系统自用
- 100-139为静态优先级,数字越小优先级越高
2.NICE值
- NICE值:-20~19对用静态优先级
- 普通用户只可以调低优先级,超级用户任意调整
- 关于优先级的命令
ps ax -o nice,pid,comm
nice –n 优先级 程序
reince–n 优先级 程序pid
3.优先级命令
【1】优先级查看
ps ax -o stat,nice,comm
0默认对应的是静态优先级中的120
【2】指定某个优先级开启进程
nice -n 优先级数字 进程名称
nice -n 5 vim & ##开启vim并且指定程序优先级为5
【3】改变进程优先级
reince -n 优先级数字 进程pid
renice -n -10 8662 ##改变8662进程的优先级为-10
stat中显示的信息
S ##进程状态
l ##内存中有锁定空间
N ##优先级低
< ##优先级高
+ ##前台运行
s ##顶级进程
五.进程的前后台调用
指令 | 作用 |
---|---|
jobs | 查看被打入环境后台的进程 |
ctrl+z | 把占用终端的进程打入后台 |
fg jobsnum | 把后台进程调回前台 |
bg jobsnum | 把后台暂停的进程运行 |
comm & | 让命令直接在后台运行 |
练习:
六.进程信号
1.常用信号等级
man 7 signal
查看信号详细信息
可控信号 | 含义 |
---|---|
1 | 进程不关闭的情况下,重新加载配置 |
2 | 中断键盘输入 |
3 | 删除鼠标在内存中的数据 |
9 | 强行结束单个进程(不能被阻塞) |
15 | 正常关闭(可能会被阻塞 ) |
18 | 激活进程 |
19 | 强制暂停(不能被阻塞) |
20 | 正常暂停(可以被阻塞) |
2.信号指令
命令 | 作用 |
---|---|
kill -信号 进程pid | 对指定进程进行操作 |
killall -信号 xx(进程名称) | 岁所有名称为xx的进程操作 |
pkill -u 1000 | 结束 |
练习:
- 中断键盘输入
- 强制暂停+唤醒进程
- 正常暂停(可能被阻塞)
kill -20 8140 后,还是在可以在shell中输入内容。这是因为该动作被系统阻塞了
- killall
七.系统守护进程
1.守护进程的定义
- 守护进程就是通常讲Daemon进程
- 是linux后台执行的服务进程
- 是独立于控制终端、周期性地执行某种任务或等待处理某些发生事件
- 不会随终端关闭而停止,直到接受停止信息才会结束
2.守护进程类型
守护进程类型 | 使用系统及特点 |
---|---|
Sysv init | 经典的守护进程类型延用到rhel6 |
upstart | 做到并行启动rhel6中应用 |
systemd | 独立完成启动,rhel7中使用 |
rhel8中沿用了systemd
有关systectl的用法
指令 | 用途 |
---|---|
systemctl list-unit-files | 查看服务开机运行情况 |
systemctl list-units | 查看服务当前运行情况 |
systemctl list-dependencies service | 查看服务依赖性 |
systemctl status service | 查看服务状态 |
systemctl start service | 开启服务 |
systemctl stop service | 关闭服务 |
systemctl reload service | 重新加载服务配置 |
systemctl restart service | 重新启动服务 |
systemctl enable service | 设定服务开启启动 |
systemctl enable –now service | 设定服务开机启动并开启服务 |
systemctl disable service | 设定服务开机关闭 |
systemctl set-default multi-user.target | 设定系统运行级别为无图形网络模式 |
systemctl set-default graphical.target | 设定系统运行级别为图形网络模式 |
练习:
- 查看开机运行情况
- 查看服务依赖性
- 查看服务状态
后期学习到rhce部分知识的时候,使用的比较多