Linux系统中的进程管理
1.什么是进程
进程就是系统中未完成并且正在进行的工作
2.查看进程
1)图形方式查看
gnome-system-monitor
2)进程查看命令
ps
-A | 所有进程 |
-a |
在环境中的所有进程,不包含环境信息 |
-u |
显示进程用户信息 |
a | 显示当前环境中运行的进程,包含环境信息 |
x |
列出系统中所有运行包含tty输出设备 |
f | 显示进程的父子关系 |
e |
显示进程的详细信息(系统资源的调用) |
ps -A
ps -a
ps -u
ps a
ps常用组合:
ps aux | 显示系统中所有进程并显示进程用户 |
ps ef | 显示进程详细信息并显示进程父子关系 |
ps ax |
显示当前系统中的所有进程 |
pstree |
显示当前系统的进程树 |
ps aux
ps ef
pstree
显示进程指定信息:ps -o xxx ##显示进程的指定信息
comm |
进程名称 |
user | 进程所有人 |
group | 进程所有组 |
%cpu | 进程cpu使用率 |
%men | 进程内存使用率 |
pid | 进程id |
nice | 进程优先级 |
进程排序:
ps ax --sort=
+%cpu|-%cpu ##按照cpu使用率排序
+%men|-%men ##按照内存使用绿排序
stat中显示的信息
S | 进程状态 |
l | 内存中有锁定空间 |
N | 优先级低 |
< | 优先级高 |
+ | 前台运行 |
s | 顶级进程 |
3.进程优先级
1)进程的优先级范围
-20~19
2)优先级查看
ps ax -o pid ,nice,comm
3)指定某个优先级开启进程
格式如下:
nice -n 优先级数字 进程名称
nice -n 5 vim & ##开启vim并且指定程序优先级为-5
4)改变进程优先级
格式:renice -n 优先级数字 进程pid
renice -n -5 1086 ##改变1086进程的优先级为-5
用watch进行监视:
watch -n 1 ps a -o stat,user,pid,comm
4.环境中进程的前后台调用
jobs | 查看被打入环境后台的进程 |
ctrl+z | 把占用终端的进程打入后台 |
fg jobsnum | 把后台进程调回前台 |
bg jobsnum | 把后台暂停的进程运行 |
comm & |
让命令直接在后台运行 |
将firefox和gedit打入后台:
打入后台的gedit不能运行
将后台进程调回前台:
gedit可以编辑了。
5.进程信号
1)常用信号等级
1 | 进程重新加载配置 |
2 | 删除进程在内存中的数据 |
3 | 删除鼠标在内存中的数据 |
9 |
强行结束单个进程(不能被阻塞) |
15 | 正常关闭进程(可能被阻塞) |
18 | 运行暂停的进程 |
19 | 暂停某个进程(不能被阻塞) |
20 | 把进程打入后台(可以被阻塞) |
man 7 signal | 查看信号详细信息 |
2)kill的用法
kill -信号 进程pid ## 杀死单个进程 |
killall -信号 进程名字 ## 批量杀死 |
pkill -u student -信号 ## 杀死指定的用户 |
示例:杀死firefox
对比前后firefox进程结束。
示例:gedit进程暂停不能被阻塞。
暂停之后不能写入东西。
6.进程的动态监控
1)top
1. | 显示cpu每个核的负载 |
s | 调整刷新频率 |
c | cpu负载排序 |
m | 内存使用量排序 |
h | 查看帮助 |
u | 查看指定用户进程 |
k | 对指定进程发起信号 |
q | 退出 |
7.控制服务
1)什么是服务
cs模型,c表示client ,s表示server
定义:系统中运行的对于系统本身没有意义,但是对客户主机有重大意义的程序叫做服务性软件,简称服务。
2)用什么控制服务
系统初始化进程可以对服务进行相应的控制
3)当前系统初始化进程是什么
systemd ##系统初始化进程
pstree ##显示系统中的进程树
4)进程控制命令
ssh ----------------------------->sshd
client server
systemctl ##服务控制命令
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 | 设定系统启动图形模式 |
示例:查看服务状态
关闭服务:
开启服务:
设定该服务不能开机启动:
列出已开启服务的当前状态:
设置系统启动多用户模式(无图形):