Linux系统进程及服务的控制
-
什么是进程
进程就是系统未完成并且正在进行的工作 -
查看进程
(1)图形方式查看gnome-system-monitor
(2)进程查看命令
- ps 显示进程信息
- ps -A 所有进程
- ps -a 在当前环境中运行的进程,不包含环境信息
- ps -u 显示进程用户信息
- ps a 在当前环境中运行的所有进程
- ps x 列出系统中所有运行有tty(输出终端)的进程
- ps f 显示进程的父子关系
ps e 显示进程的详细信息(系统资源的调用)
ps l 长列表显示进程的详情
(3)ps 常用组合 - ps aux 显示系统中所有进程并显示进程用户
- ps ef 显示进程详细信息并显示进程父子关系
- ps ax 显示当前系统中的所有进程(一般配合其他参数使用)
- pstree 显示当前系统进程树
(4)显示进程指定信息
ps -o xxx 显示进程的指定信息
comm 进程名称
user 进程所有人
group 进程所有组
%cpu 进程cpu使用率
%mem 进程内存使用率
pid 进程id
nice 进程优先级
(5)进程排序
ps ax --sort=+%cpu|-%cpu
=%mem|-%mem
提示:+表示从小到大排序|-表示从大到小排序
例:将cpu进程排序前五的id给显示出来ps ax --sort=-%cpu -o pid | head -n 6 | tail -n 5
(因为PID标识还要占用一行,所以是head -n 6 )
(6)stat中显示的信息
S 进程状态
l 内存中的锁定空间
N 优先级低
< 优先级高
+ 前台运行
s 顶级进程
-
进程优先级
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 1806 改变1806进程的优先级为-5 - 环境中进程的前后台调用
- jobs 查看被打入环境后台的进程
提示:+表示优先调用,-表示次优先调用 - ctrl+z 把占用终端的进程打入后台
- fg jobsnum 把后台进程调回前台
- bg jobsnum 把后台暂停的进程运行
- 命令 & 让命令直接在后台运行
注意:vim是必须要占用终端的所以不能在后台运行
-
进程信号
1)常用信号等级
等级 作用
1 进程重新加载配置
2 删除进程在内存中的数据
3 删除鼠标在内存中的数据(ctrl+/)
9 强行结束单个进程(不能被阻塞)
15 正常关闭进程(可能会被阻塞)
18 运行暂停的进程
19 暂停某个进程(不能被阻塞)
20 把进程打入后台(可能被阻塞)
- man 7 signal 查看信号详细信息
- kill -信号 进程pid
- killall -信号 进程名字
- pkill -u student -信号 结束student用户开启的进程
-
进程的动态监控
1)命令:top
-
1 显示cpu每个核的负载
-
s 调整刷新频率
-
c cpu负载排序
-
m 内存使用量排序
-
h 查看帮助
-
u 查看指定用户进程
-
k 对指定用户发起信号
输入制定用户PID
输入信号 -
q 退出
-
控制服务
(1)用什么控制服务
系统初始化进程可以对服务进行相应的控制
(2)当前系统初始化进程是什么
- systemd 系统初始化进程
- pstree 显示系统中的进程树
(3)进程控制命令 - systemctl 服务控制命令
- systemctl status sshd 查看服务状态,inactive(不可用) active(可用)
- 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 列出所有服务开机启动的(disable,enable,static)
- systemctl list-dependencies 列出服务的倚赖
- systemctl set-default multi-user.target 设定系统启动级别为多用户模式
- systemctl set-default graphical.target 设定系统启动级别为图形模式