文章目录
一、系统进程管理
1、进程的含义
- 程序正在运行的状态为进程 ,也就是cpu未完成的工作,程序并不是进程
前台运行 | 占CPU、内存资源,运行可见
后台运行 | 不争抢CPU、内存资源,系统资源闲置时运行,运行不可见,只显示运行结果
后台暂停 | 运行无条件,暂时停止后台进程
2、查看系统的进程
2.1 图形模式
gnome - system - monitor | 图形界面查看进程
2.2 命令模式
命令 | 含义 |
---|---|
ps | 自己所在的shell里面运行的进程 |
ps a | 在shell当中运行的所有进程,包括shell的环境bash |
ps -a | 在shell当中运行的所有进程,不包括shell环境本身信息bash |
ps -A | 系统当中所有的进程,与shell无关 |
ps -d | 与A类似 ,没有允许环境(shell) |
ps -e | 显示进程的扩展信息(系统资源),与-A 类似 |
ps x | 显示所有输出设备终端的进程 |
ps -u | 显示用户信息 ,id等等 ,终端 ,各种时间 |
ps -f | 显示父级进程以及子进程 |
(1)ps 、 ps a 、 ps -a
(2)ps -A
(3)ps -d
(4)ps X
(5)==ps -u ==
2.3 常用ps组合
命令 | 含义 |
---|---|
ps aux | 显示系统当中的所有进程并显示进程用户 |
ps ef | 显示进程的详细信息以及进程的父子关系 |
ps ax | 显示当前系统当中的所有进程 |
pstree | 显示当前系统的进程树 |
- 注意:父级进程结束以后子进程不一定会结束,若父级进程被强行关闭 ,余下的子进程叫孤儿进程 ,受系统初始化程序控制。一般由系统的初始化程序来控制其他进程的开始和结束,可以用pstree查看系统的进程树(pstree)systemd为初始化程序,是所有程序的父级程序,不会自己关闭结束自己,只有关机才可以,或者结束了所有子进程以后,该初始化进程才会被关闭。
2.4显示进程指定信息
ps -o xxx | 显示进程的指定信息
xxx | 含义 |
---|---|
comm | 进程名称 |
user | 进程所有人 |
group | 进程所有组 |
%cpu | 进程cpu使用率 |
%men | 进程内存使用率 |
pid | 进程的id |
nice | 进程优先级 |
(1)
(2)tty为所处环境,stat为所处状态
2.5 进程排序
ps ax --sort=要显示的东西
命令 | 含义 |
---|---|
ps ax --sort=%men -o %mem | 显示mem升序 |
ps ax --sort=-%men -o %mem | 显示mem降序 |
ps ax --sort=%cpu -o %cpu | 显示cpu使用率升序 |
ps ax --sort=-%cpu -o %cpu | 显示cpu使用率降序 |
(1)ps --sort=%cpu、 ps -A --sort=%cpu
(2)ps -A --sort=%mem -o %mem
(3)面试题:memory +5 pid 显示内存当中pid的前五个
命令: ps -A --sort=-%mem -o pid |head -n 6 | tail -n 5
2.6 stat显示的信息含义
字符 | 含义 |
---|---|
S | 进程状态 |
s | 没有父进程,顶级进程 |
l | 在内存当中有锁定空间(进程结束之前不会被系统回收) |
+ | 正在前台运行的进程 |
N | 表示优先级低 |
< | 表示优先级高 |
3、进程的优先级
ps ax -o pid,nice,comm | 优先级的查看 (进程的优先级范围: -20~19)
3.1改变进程的优先级
- 图形调整进程的优先级,直接在进程的图形界面里面调整数字
- 命令设定进程优先级,直接在shell里面输入命令即可
nice -n 优先级数字 进程名称 | 指定优先级且开启进程
renice -n 优先级数字 进程名称 | 更改已打开进程优先级
(1)nice -n -5 vim 开启vim并且指定该程序的优先级为-5
(2) renice -n -5 2115 改变2115进程的优先级为10。
4、进程的前后台调用
4.1 前后台调用的常用命令
命令 | 含义 |
---|---|
jobs | 查看被打入环境后台的进程 |
ctrl+z | 把占用终端的进程打入后台 |
fg+jobsnum | 把后台的进程调回前台 |
bg+jobsnum | 把后台暂停的进程运行起来 |
comm+& | 让命令直接运行在后台 |
(1)先用在desktop主机中输入gedit , 此进程会占用终端,使终端不能使用
(2)直接在shell脚本输入 ctrl+z 打入后台
(3)输入jobs查看被打入后台的进程
(4) fg 数字 将被打入后台的进程调回前台(终端)
(5)bg 数字 将被打入后台的暂停的进程运行起来
(6)使用 comm(名字) &, 让命令直接在后台运行
- 注意:+表示正在运行 , -表示为次优先; 如果没有+(把一个进程调回前台) , -就会被自动变为+(优先级提高)
5、kill控制进程
5.1 常用信号等级
等级 | 含义 |
---|---|
1 | 进程重新加载配置 |
2 | 删除进程在内存中的数据 |
3 | 删除鼠标在内存中的数据 |
9 | 强行结束但个进程(不能被阻塞) |
15 | 正常关闭进程(可能会被阻塞) |
18 | 运行暂停的进程 |
19 | 暂停某个进程(不能被i阻塞) |
20 | 把进程打入后台(可以被阻塞) |
5.2 kill的用法
kill -信号 进程pid | 执行单个
killall -信号 进程名字 | 批量执行
pkill -信号 -u 用户 | 执行指定用户
(1) kill -9 2276 执行单个删除进程命令
(2) killall -信号 进程名字 批量执行
(3)pkill -9 -u student 执行指定用户
6、进程的动态监控
6.1 动态监控命令
参数 | 含义 |
---|---|
1(小写l) | 显示cpu每个核的负载 |
s | 调整刷新频率 |
c | cpu负载排序 |
m | 内存使用量排序 |
h | 查看帮助 |
u | 查看指定用户进程 |
k | 对指定信号发起进程 |
q | 退出 |
6.2 top监控
(1)按下 “1”
(2)按下**“s”**
(3)按下**“c”**
(4)按下**“m”**
(5)按下**“h”**
(6)按下**“u”**
(7)按下**“k”**
7、控制服务
- 服务也是进程,是多个进程的集合,对自己没有意义,但对客户有意义
- 说明:要区分客户端和服务端,客户端:要分享别人,连接方,服务端:远程的主机,可以共享资源 (前提是安全共享),被连接方。
- 系统初始化进程有两个:systemd pstree
7.1 进程控制命令
命令 | 含义 |
---|---|
systemctl status sshd | 查看服务状态, |
systemctl start sshd | 开启服务 |
systemctl stop sshd | 关闭服务 |
systemctl restart sshd | 重启服务 |
systemctl reload sshd | 重新加载服务配置 |
systemctl enable sshd | 设定服务开机启动 |
systemctl disable sshd | 设定服务开机不启动 |
systemctl list-units | 列出已经开启服务当前状态 |
systemctl list-unit-files | 列出所有服务器开机启动的状态 |
systemctl list-dependencies | 列出服务的依赖 |
systemctl set-default multi-user.target | 设定系统启动级别为无图形模式 |
systemctl set-default graphical.target | 设定系统启动级别为图形模式 |
- 所有的服务状态如下: static disable enable masked(一共四种)
(1)systemctl status sshd 查看服务状态
(2) systemctl stop sshd 关闭服务 systemctl start sshd 开启服务
(3) systemctl list-units 列出所有服务器开机启动的状态
(4) systemctl list-unit-files 列出所有服务器开机启动的状态
(5) systemctl list-dependencies 列出所有服务的依赖