目录
1. 进程的概述
程序是静态的文件,而进程(Process)就是运行中一个程序的副本,副本拥有准备期、运行期和终止期三种状态。
1.1 进程的状态
状态 | 定义 |
R(TASK_RUNNING) | 可执行状态(RUNNING、READY) |
S(TASK_INTERRUPTIBLE) | 可唤醒睡眠状态 |
D (TASK_UNINTERRUPTIBLE) | 不可唤醒睡眠状态 |
T(TASK_STOPPED) | 暂停状态 |
z( EXIT_ZOMBIE) | 僵死态 |
2 进程查看
pstree ## 查看进程树
2.1 ps命令
ps:用来显示当前命令执行时的进程状态
命令 | 功能 |
a | 显示与终端相关进程(BSD) |
x | 显示所有与终端无关进程(BSD) |
u | 以用户为归类来显示进程状态信息(BSD) |
f | 层级结构显示进程信息 |
o | 指定查看选项,pid,comm,nice,pri,pcpu,stat,ppid |
-e | 显示所有进程(unix) |
-f | 显示完整格式信息(unix) |
-H | 层级结构显示进程的相关信息 |
-o | 指定查看选项,pid,comm,nice,%cpu,%mem,nice |
2.2 ps命令显示信息
字段 | 解释 |
USER | 用户名称 |
PID | 进程id |
%CPU | cpu用量百分比 |
%MEM | 内存用量百分比 |
VSZ | 占用虚拟内存大小 |
RSS | 常驻内存集大小 |
TTY | 字符终端 |
STAT | 进程状态 |
START | 运行时间 |
TIME | 占用CPU时间 |
COMMAND | 进程名称 |
2.3 pgrep
pgrep:显示指定信息进程
命令 | 功能 |
-u uid | 显示指定用户进程 |
-U name | 显示指定用户进程 |
-t tty | 显示指定终端进程 |
-l | 显示进程名称 |
-a | 显示完整格式进程名 |
-P pid | 显示指定进程的子进程 |
2.4 pidof
pidof:根据进程名称获取pid
2.5 top
top内部参数
命令 | 功能 |
P | cpu百分比排序 |
M | 内存百分比 |
T | 累计占用cpu时间 |
l | 开启/关闭uptime信息 |
t | 开启/关闭task&cpu信息 |
s | 调整刷新频率 |
k | 终止进程 |
u | 查看指定用户进程 |
top命令参数
命令 | 功能 |
-d | 指定刷新间隔 |
-b |
以批次方式显示 |
-n | 显示批次数量 |
top显示进程信息详解
top 系统当前时间
up 系统运行时长
user 登录当前系统的用户数量
load average 平均负载1分钟 5分钟 15分钟的队列长度(uptime)
task 任务
%cpu cpu占用百分比
- us 用户空间
- sy 内核空间
- ni nice调整时间
- id 空闲时间
- wa 等待io
- hi 处理硬件中断
- si 处理软件中断
- st 被虚拟化程序占用的百分比
mem 物理内存
swap 交换分区占用
3. 进程优先级
3.1 按照资源占用划分进程类型
资源使用量 | 进程类型 |
cpu使用密集 | CPU-Bound |
I/O使用密集 | I/O-Bound |
3.2 优先级范围
对Linux而言,优先级被划分成了固定的个数(0-139)。
其中,1-99为实时优先级,数字越大优先级越高,不用手动处理系统自用,100-139为静态优先级,与实时优先级相反,数字越小优先级越高。
3.3 NICE值
NI :进程Nice值,代表这个进程的优先值。-20 ~ 19用静态优先级,其中普通用户只能调低优先级,而超级用户则可以任意调整。
关于优先级的命令:
- ps ax -o nice,pid,comm
- nice -n 优先级 程序
- reince-n 优先级 程序pid
4. 进程前后台调用
4.1 进程前后台调用相关命令
指定 | 含义 |
jobs | 查看后台任务 |
ctrl+z | 将前台运行进程打入后台 |
bg | 激活后台进程 |
fg | 调回进程 |
& | 运行在后台 |
实验:打开gedit,并将其运行在后台
5. 信号
5.1 可控信号类型
可控信号 | 含义 |
1 | 刷新 |
2 | 中断键盘输入 |
3 | 退出键盘 |
9 | 强制结束 |
15 | 正常关闭 |
18 | 激活进程 |
19 | 强制暂停 |
20 | 正常暂停(会被阻塞) |
5.2 信号指令
kill 信号 pid
pkill 信号 进程名称
实验:
通过信号:kill 信号 pid中断输入
通过信号:pkill 信号 进程名称中断输入
6. 系统守护进程
6.1 守护进程的定义
守护进程就是我们经常讲的Daemon进程,即linux后台执行的服务进程。
它是独立于控制终端、周期性地执行某种任务或等待处理某些发生的事件。
它不会随着终端的关闭而停止,一直到接收到停止信息才会结束。
6.2 守护进程的类型
守护进程类型 | 使用系统及特点 |
Sysv init | 经典的守护进程类型延用到了rhel6 |
upstart | 做到并行启动rhel6中的应用 |
systemd | 独立完成启动,rhel7中使用 |
6.3 systemctl用法总结
用法一:
指令 | 用途 |
systemctl list-unit-files | 查看服务开机运行情况 |
systemctl list-units | 查看服务当前运行情况 |
systemctl list dependencies | 查看服务依赖性 |
systemctl status service | 查看服务状态 |
systemctl start service | 开启服务 |
systemctl stop service | 关闭服务 |
systemctl reload service | 重新加载服务配置 |
实验:查看服务当前运行情况(systemctl list-units)
用法二:
指令 | 用途 |
systemctl restart service | 重新启动服务 |
systemctl enable service | 设定服务开启启动 |
systemctl enable –now service | 设定服务开机启动并开启服务 |
systemctl disable service | 设定服务开机关闭 |
systemctl set-default multi-user.target | 设定系统运行级别为无图形网络模式 |
systemctl set-default graphical.target | 设定系统运行级别为图形网络模式 |