目录
1.什么是进程
进程(Process)
- 程序是静态的文件
- 进程是运行中的程序的一个副本
- 进程存在生命周期(准备期,运行期,终止期)
进程状态
状态 | 定义 |
---|---|
R(TASK_RUNNING) | 可执行(RUNNING,READY) |
S(TASK_INTERRUPTIBLE) | 可唤醒睡眠状态 |
D (TASK_UNINTERRUPTIBLE) | 不可唤醒睡眠状态 |
T(TASK_STOPPED) | 暂停状态 |
z( EXIT_ZOMBIE) | 僵死态 |
2.进程查看
2.1、pstree
查看进程树
线程是进程运行的最小单位,进程是资源调配的最小单位
2.2、ps
ps:显示当前命令执行时进程状态
ps命令有三种命令风格,常用的为BSD和unix
参数 | 作用 |
---|---|
a | 显示与终端相关进程(BSD) |
x | 显示所有与终端无关进程(BSD) |
u | 以用户为归类来显示进程状态信息(BSD) |
f | 层级结构显示进程信息 |
o | 指定查看选项:pid,comm,nice,pri,pcpu,stat,ppid |
-e | 显示所有进程(uinx) |
-f | 显示完整格式信息(unix) |
-H | 层级结构显示进程的相关信息 |
-o | 指定查看选项:pid,comm,nice,%cpu,%mem,nice |
示例:
ps命令显示信息
字段 | 解释 |
---|---|
USER | 用户名称 |
PID | 进程id |
%CPU | CPU用量百分比 |
%MEM | 内存用量百分比 |
VSZ | 占用虚拟内存大小 |
RSS | 常驻内存集大小 |
TTY | 字符终端 |
STAT | 进程状态 |
START | 运行时间 |
TIME | 占用cpu时间 |
COMMAND | 进程名称 |
2.3、pgrep
显示指定信息进程
参数 | 作用 |
---|---|
【-u】+ 【uid】 | 显示指定用户进程 |
【-U】+【name】 | 显示指定用户进程 |
【-t】+【 tty】 | 显示指定终端进程 |
【-l】 | 显示进程名称 |
【 -a】 | 显示完整格式进程名 |
【-P】 | pid 显示指定进程的子进程 |
示例:
2.4、pidof
根据进程名称获取pid
2.5、top
在shell中执行top命令,显示进程信息,默认3秒刷新一次,键入q退出
top内部参数
参数 | 解释 |
---|---|
P | cpu百分比排序 |
M | 内存百分比 |
T | 累计占用cpu时间 |
l | 开启/关掉uptime信息 |
t | 开启/关闭task&cpu信息 |
s | 调整刷新频率 |
k | 终止进程 |
u | 查看指定用户进程 |
在top命令模式下键入以上参数,对进程信息的查看进行调整
top命令参数
- -d 指定刷新间隔
- -b 以批次方式显示
- -n 显示批次数量
示例:
top显示进程信息详解
字段 | 解释 |
---|---|
top | 系统当期时间 |
up | 系统运行时常 |
user | 登录当前系统的用户数量 |
load average | 平均负载1分钟 5分钟 15 分钟的队列长度(uptime) |
task | 任务 |
mem | 物理内存 |
swap | 交换分区占用 |
%cpu | cpu占用百分比 |
%cpu:
- us 用户空间
- sy 内核空间
- ni nice调整时间
- id 空闲时间
- wa 等待io
- hi 处理硬件中断
- si 处理软件中断
- st 被虚拟化程序占用的百分比
3.进程优先级
3.1、按照资源占用划分进程类型
资源使用量 | 进程类型 |
---|---|
cpu使用密集 | CPU-Bound |
I/O使用密集 | I/O-Bound |
3.2、优先级范围
- 对Linux而言优先级被划分成固定个数(0-139)
- 1-99为实时有优先级,数字越大优先级越高,不用手动处理系统自用
- 100-139为静态优先级,数字越小优先级越高
3.3、NICE值
- NICE值:-20~19对应静态优先级
- 普通用户只可以调低优先级,超级用户任意调整
关于优先级的命令
- nice –n 优先级 程序 #指定进程的优先级,产生一个新的进程
- reince –n 优先级 程序pid #调整进程的优先级
示例:将gedit的nice值设置为5
4.进程前后台调用
指令 | 含义 |
---|---|
jobs | 查看后台任务 |
ctrl+z | 将前台运行进程打入后台 |
bg | 激活后台进程 |
fg | 调回进程 |
& | 运行在后台 |
5.信号
5.1、可控信号类型
可控信号 | 含义 |
---|---|
1 | 刷新 |
2 | 中断键盘输入 |
3 | 退出键盘 |
9 | 强制结束 |
15 | 正常关闭 |
18 | 激活进程 |
19 | 强制暂停 |
20 | 正常暂停 |
5.2、信号指令
- 【kill】 + 【信号】+【pid】
- 【pkill】 + 【信号】+【进程名称】
- 【pkill】+【参数】+【进程信息】 #根据指定条件结束进程
- 【killall】+【信号】+【进程名称】
- 【killall】+【参数】+【进程信息】 #根据指定条件结束进程
示例:
示例①:用kill命令结束进程
示例②:用pkill命令结束进程
示例③:用killall 命令结束进程
示例④:登录 UID为1000的student用户
用pkill命令结束uid为1000的进程
此时,student用户退出登录
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 restart service | 重新启动服务 |
systemctl enable service | 设定服务开启启动 |
systemctl enable –now service | 设定服务开机启动并开启服务 |
systemctl disable service | 设定服务开机关闭 |
systemctl set-default multi-user.target | 设定系统运行级别为无图形网络模式 |
systemctl set-default graphical.target | 设定系统运行级别为图形网络模式 |
实验操作
1.实验环境的设定:
开启两台虚拟机,设定两台虚拟机的IP地址在同一网段,服务端:IP=192.168.110.128 客户端:IP=192.168.110.130
示例:设定客户端IP:192.168.110.130
①:在shell中执行nm-connection-editor,打开网络连接工具,删除已有的Ethernet项,添加一个新的
②:选择Ethernet,点击create进行创建
③:选择网卡设备
④:添加ip地址:Method项选择Manual,输入IP地址,子网掩码,点击Gateway下方的框,保存退出
⑤:执行ip addr show 命令查看到IP地址已添加成功
⑥:另一台虚拟机也用以上同样的方法设定网络,然后用客户机去ping服务机,能ping的通,说明两台虚拟机之间可以进行通信,实验环境设定完成。
2.systemctl的用法演示:(在ip地址为192.168.110.128的服务端虚拟机上测试systemtcl命令效果)
①:查看服务开机运行情况
②: 查看服务当前运行情况
输入/sshd,搜索sshd的运行情况
③:查看sshd服务依赖性
④:查看sshd服务状态
⑤:关闭sshd服务,在另一台虚拟机上远程连接本台虚拟机,连接被拒绝
⑥:开启sshd服务,在客户机上远程连接本台虚拟机,成功登录
⑦:如果我们修改了服务的配置文件,那么应重新启动或初始化服务,重新启动后ID发生改变
⑧:如果用reload重新加载服务配置,程序不会关闭,直接加载,ID不发生变化