一、什么是进程?
程序放置在存储媒体中(如硬盘、光盘、软盘、磁带等),为实体文件的形态存在。
进程:程序被触发后,执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),可以说,进程就是系统未完成并且正在运行中的程序。
二、进程状态
R(Running):该程序正在运行中.
S(Sleep):该程序目前正在睡眠状态(idle),但可以被唤醒(signal).
D 不可唤醒的睡眠状态,通常进程可能在等待I/O的情况。
T 停止状态(stop),可能是在工作控制(背景暂停)或除错(traced)状态;
Z (Zombie):僵尸状态,程序已经终止但却无法被移除至内存外
三、查看进程
- 图形方式查看
[root@localhost Desktop]# gnome-system-monitor
2. 进程查看命令
ps -A | 所有进程 |
---|---|
ps -a | 在环境中的所有进程 |
ps -u | 显示进程用户信息 |
ps a | 在当前环境中运行的进程 |
ps x | 列出系统中所有运行包含tty输出设备 |
ps f | 显示进程的父子关系 |
ps e | 显示进程的详细信息(系统资源的调用) |
3. ps常用组合
ps aux | 显示系统中所有进程并显示用户信息 |
---|---|
ps ef | 显示进程详细信息并显示进程父子关系 |
ps ax | 显示当前系统中的所有进程 |
pstree | 显示当前系统的进程树 |
4. 显示进程指定信息
ps -o comm | 进程名称 |
---|---|
ps -o user | 进程所有人 |
ps -o group | 进程所有组 |
ps -o %cpu | 进程cpu使用率 |
ps -o %mem | 进程内存使用率 |
ps -o pid | 进程id |
ps -o nice | 进程优先级 |
5. 进程排序
ps ax --sort = +%cpu/-%cpu
ps ax --sort = +%mem/-%mem
6. stat中显示的信息
S | 进程状态 |
---|---|
l | 内存中有锁定空间 |
N | 优先级低 |
< | 优先级高 |
+ | 前台运行 |
s | 顶级进程 |
四、进程优先级
1. 进程的优先级范围
-20~19
2. 优先级查看
ps ax -o pid,nice ,comm
4. 指定某个优先级开启过程
nice -n 优先级数字 进程名称
nice -n 5 vim ####开启vim并且指定程序优先级为5
5. 改变进程优先级
reince -n 优先级数字 进程pid
reince -n -5 1806 ####改变1806进程的优先级为-5
6. 环境中进程的前后台调用
jobs | 查看被打入环境后台的进程 |
---|---|
ctrl+z | 把占用终端的进程打入后台 |
fg jobsnum | 把后台进程调回前台 |
bg jobsnum | 把后台暂停的进程运行 |
comm & | 让命令直接在后台运行 |
7. 进程信号
常用信号等级:
1 | 进程重新加载配置 |
---|---|
2 | 删除进程在内存中的数据 |
3 | 删除鼠标在内存中的数据 |
9 | 强制结束单个进程(不能被阻塞) |
15 | 正常关闭进程 |
18 | 运行暂停的进程 |
19 | 暂停某个进程(不能被阻塞) |
20 | 把进程打入后台(可以被阻塞) |
man 7 signal 查看信号详细信息
kill ——>向内核之间发送信号
kill -信号 进程pid
killall -信号 进程名字
示例:killall -15 gedit ##关闭名字包括gedit的进程
pkill -u student -信号
8. 进程的动态监控: top
1 | 显示cpu每个核的负载 |
---|---|
s | 调整刷新频率 |
c | cpu负载排序 |
m | 内存使用量排序 |
h | 查看帮助 |
u | 查看指定用户进程 |
k | 对指定进程发起信号 |
q | 退出 |
五、 控制服务
1. 什么是服务
系统中运行的对于系统本身没有意义但是对客户主机有重大意义的程序叫做服务性软件简称服务。
一类软件
cs模型:c–>client s–>server
2. 用什么控制服务
系统初始化进程可以对服务进行相应的控制
3. 当前系统初始化进程是什么
systemd 系统初始化进程
pstree 显示系统中的进程树
六、进程控制命令
ssh -->sshd
client server
systemctl 参数 服务名称 ##服务控制命令
以sshd服务为例:
systemctl start sshd ##开启服务
systemctl status sshd ##查看服务状态,inactive(不可用),active(可用)
systemctl stop sshd ####关闭服务
systemctl restart sshd 重启服务
systemctl reload sshd 重新加载服务配置
systemctl enable sshd 设定服务开机启动
systemctl disable sshd 设定服务开机不启动
systemctl list-units 列出已经开启服务当前状态
systemctl list-unit-files 列出所有服务开机启动的状态 disable,enable,static
systemctl list-dependencies 列出服务的依赖
systemctl set-default multi-user.target 设定系统启动级别为多用户模式(无图形)
systemctl set-default graphical.target 设定系统启动级别为图形模式
systemctl mask sshd 冻结服务 (关的时候锁)
systemctl unmask sshd 解除冻结