Linux系统中进程的管理
一、进程是什么
程序是静态的是磁盘上的一个文件,进程是运行中的程序的一个副本,进程是动态的,当程序被加载到磁盘上,程序就成为了进程。进程是存在生命周期的,有准备期,运行期以及终止期
二、进程的状态
状态 | 定义 |
---|---|
R(Running) | 可执行状态(Running,Ready) |
S(Interruptible) | 可唤醒状态 |
D(Uninterruptible) | 不可唤醒状态 |
T(Stopped) | 暂停状态 |
Z(Zombie) | 僵死状态 |
三、进程的查看
1、查看进程树
命令为pstree
, 进程是运行的程序在系统中的存在形式,通过查看进程的状态信息,我们可以了解进程占用的系统资源情况,对系统的运行状态进行分析、调整,从而让系统保持在一个平稳的状态下运行
2、显示当前命令执行时进程状态
命令为ps
(Process Status)可以列出与本次登陆系统有关的进程信息
- BSD风格
a | 显示与终端相关进程 |
---|---|
x | 显示所有与终端无关的进程 |
u | 以用户归类来显示进程状态信息 |
f | 层级结构显示进程信息 |
o | 指定查看选项 |
- unix风格
-e | 显示所有进程 |
---|---|
-f | 显示完整格式信息 |
-H | 层级结构显示进程的相关信息 |
-o | 查看指定选项 |
- ps命令显示信息
字段 | 解释 |
---|---|
USER | 用户名称 |
PUD | 进程id |
%CPU | cpu用量百分比 |
%MEM | 内存用量百分比 |
VSZ | 占用虚拟内存大小 |
RSS | 常驻内存集大小 |
TTY | 字符终端 |
STAT | 进程状态 |
START | 运行时间 |
TIME | 占用cpu时间 |
COMMAND | 进程名称 |
3、显示指定进程信息
命令为pgrep
-u(uid) | 显示指定用户进程 |
---|---|
-U(name) | 显示指定用户进程 |
-t(tty) | 显示指定终端进程 |
-l | 显示进程名称 |
-a | 显示完整格式进程名 |
-P(pid) | 显示指定进程的子进程 |
切入student用户并查看用户id
查看进程id
显示终端pts/1终端进程
显示完整格式进程名
显示子进程
4、根据进程名称获取pid
命令为pidof
5、动态显示内存中的进程信息
命令为top
- 内部参数
P | cpu百分比排序 |
---|---|
M | 内存百分比排序 |
T | 累计占用cpu时间 |
l | 开启/关闭uptime信息 |
t | 开启/关闭task&cpu时间 |
s | 调整刷新频率 |
k | 终止进程 |
u | 查看指定用户进程 |
top命令
关闭uptime信息
关闭task&cpu时间状态1
关闭task&cpu时间状态2
关闭task&cpu时间状态3
调整刷新频率
查看student用户进程信息
终止firellwd进程
- 命令参数
-d | 指定刷新间隔 |
---|---|
-b | 以批次方式显示 |
-n | 显示批次数量 |
- top显示进程信息详解
top 系统当期时间
up 系统运行时常
user 登录当前系统的用户数量
load average 平均负载1分钟 5分钟 15分钟的队列长度
task 任务
%cpu cpu占用百分比
mem 物理内存
swap 交换分区
其中%cpu中不同参数的含义如下
us | 用户空间 |
---|---|
sy | 内核空间 |
ni | nice调整时间 |
id | 空闲时间 |
wa | 等待io |
hi | 处理硬件中断 |
si | 处理软件中断 |
st | 被虚拟化程序占用的百分比 |
四、进程优先级
-
优先级范围
在Linux中优先级由固定的数字表示(0-139),其中1-99为实时优先级,数字越大优先级越高,是系统自用的,不用手动处理,100-139为静态优先级,数字越小优先级越高 -
NICE值
用数字-20-19对应静态优先级,普通用户只能够调低优先级而超级用户可以任意调整
用ps ax -o nice,pid,comm
可以查看系统中进程的优先级
用nice -n 优先级数字 程序
以及renice -n 优先级 程序pid
可以调整进程的优先级
五、进程的前后台调用
指令 | 含义 |
---|---|
jobs | 查看后台任务 |
ctrl+z | 将前台运行程序打入后台 |
bg | **后台进程 |
fg | 调回进程 |
& | 运行在后台 |
将gedit调回前台,状态变为running
不能通过bg指令将vim**,它会立即回到stopped状态
六、信号
- 可控信号类型
命令为man 7 signal
可控信号 | 含义 |
---|---|
1 | 刷新 |
2 | 中断键盘输入 |
3 | 退出键盘 |
9 | 强制结束 |
15 | 正常关闭 |
18 | **进程 |
19 | 强制暂停 |
20 | 正常暂停 |
信号指令为
kill 信号 pid
pkill 信号 进程名称
七、系统守护进程
守护进程是linux后台执行的服务进程,是独立于控制终端,周期性地执行某种任务或等待处理某些发生事件,不会随着终端关闭而停止,直到接受停止信息才会结束
- 守护进程的类型
守护进程类型 | 使用系统及特点 |
---|---|
Sysv init | 沿用到rehl6 链式开启 |
upstart | 在rehl6中应用并行启动 |
systemd | rhel7后使用独立完成启动 |
- systemctl 用法
指令 | 用途 |
---|---|
systemctl list-unit-files --type=service | 查看服务开机运行情况 |
systemctl list-units --type=service | 查看服务当前运行情况 |
systemctl list-dependencies | 查看服务依赖性 |
systemctl status service | 查看服务状态 |
systemctl start service | 开启服务 |
systemctl stop service | 关闭服务 |
systemctl restart service | 重新启动服务 |
systemctl enable service | 设定服务开机启动 |
systemctl disable service | 设定服务开机关闭 |
systemctl enable --now service | 设定服务开机启动并开启服务 |
systemctl set-default multi-user.target | 设定系统运行级别为无图形网络模式 |
systemctl set-default graphical.target | 设定系统运行级别为图形网络模式 |
查看服务开机运行情况
查看服务当前运行情况
查看sshd服务的依赖性
查看sshd状态显示正在运行并且开机不启动
停止sshd
当sshd服务关闭后,真机和虚拟机之间的连接中断
打开sshd服务并查看此时服务状态
打开sshd服务后真机和虚拟机可以ssh上
查看sshd服务状态以及此时的进程号
将服务restart后服务的进程号会改变
用reload后刷新服务配置进程号不会改变
设定ssh服务开机关闭
将sshd服务关闭并查看状态
设定开机开启服务并且开启sshd服务
设定系统运行级别为无图形网络模式
命令init 5
能暂时手动开启图形模式
设定系统运行级别为图形网络模式
上一篇: 前端面试题及答案
下一篇: 1007 素数对猜想 (20分)