一 进程管理
1 什么是进程
进程就是正在进行的程序
2查看进程
鼠标打开进程管理器
gnome-system-monitor
3 进程查看命令
1)ps
ps -A
#系统所有进程
ps -a
#当前环境中运行的进程,不包含环境信息
ps -u
#显示进程用户详细信息
ps a
#当前终端中运行的进程
ps x
#系统是所有存在输出终端的进程
ps f
#显示当前环境进程父子关系 ,父进程结束后一般子进程也自动结
束。 没有结束的子进程成为孤儿进程,直接归系统初始化进程管理。
ps e
#显示进程系统资源的调用
2)ps常用组合
ps ax
#系统中所有进程
ps aux
#所有进程 并显示用户信息
ps ef
#显示进程详细信息 以及进程父子关系
pstree
#显示系统进程树
3) 显示进程指定信息
ps -o < >(comm user group pid nice %mem %cpu)
#显示进程指定信息,可以组合使用,中间用逗号隔开。
4) 进程排序
ps ax --sort=+%cpu #按照cpu使用情况对进程进行排序 +表示顺序,-表示倒序。
+%mem #按照内存使用情况对进程进行排序 +表示顺序,-表示倒序
4 stat 进程状态信息
ps ax -o stat #查看进程的状态
S 进程状态
s 顶级进程 没有父进程
l 内存锁定空间 存在内存锁定空间的进程
N 优先级低 该进程优先级低于默认水平
< 优先级高 该进程优先级高于默认水平
+ 前台运行 该进程正在前台运行
5 nice 进程优先级
ps ax -o nice # 查看进程的优先级
优先级级别 -20 到 19 数字越小 优先级越高。优先级别越高,越先被响应执行。
nice -n 优先级数字 进程名
#在打开这个进程的同时 指定其优先级
renice -n 优先级数字 进程pid数字
#已经存在的进程的优先级被修改。
6 环境中进程前后台的调用
ctrl+z #将占用终端的进程打入后台 (进入暂停状态)
jobs #查看被打入环境后台的进程 (每一个被打入后台的进程会生成一个编号)
fg 被打入后台生成的编号 #前台运行
bg 被打入后台生成的编号 #让暂停的进程在后台运行
命令 & #直接让命令在后台执行 。
7 进程信号
信号等级共有30级别。
常用信号等级 (1,2,3,9,15,18,19,20)
1 进程重新加载 配置(在不用重新启动进程的情况下完成重新加载配置)
2 删除进程在内存中的数据
3 删除鼠标在内存中的数据
9 强行结束单个进程(不能被阻塞,进程必须被结束)
15 正常关闭进程(可能会被阻塞,导致进程没有被关闭)
18 运行暂停的进程(使已经暂停的进程重新运行)
19 暂停某个进程(不能被阻塞,强制暂停)
20 把进程打入后后台进行暂停(可以被阻塞,导致进程没有被暂停)
使用man 7 查看信号相应信息。
kill -信号 进程pid
#对某一个进程发送信号
kllall -信号 进程名字
#对一类名称进程进行处理
pkill -u 用户 -信号
#对某一用户进程进行处理。
8 进程的动态监控
top 命令 #进行进程动态监控
1 显示cpu 每个核的负载
s 调整刷新频率
c 进程按照cpu负载进行排序
m 进程按照内存使用情况进行排序
h 查看帮助
u 查看指定用户进程
k 对指定进程发起信号
q 推出进程动态监控
9 控制服务
1)服务就是做一些对自己没有用但是对别人有用的事情。
2)系统初始化进程可以对服务进行相应的控制。
3)当前系统的初始化进程systemd。可以通过pstree 进行查看,处于最顶端的就是系统初始化进程。
4)进程控制命令
systemctl 服务控制命令:
systemctl status 服务名称
#查看服务状态,inactive(不可用)active(可用)
systemctl start 服务名称
#开启服务
systemctl stop 服务名称
#关闭服务
systemctl restart 服务名称
# 重启服务
systemctl reload 服务名称
#重新加载服务配置
systemctl enable 服务名称
#设定服务开机启动
systemctl disable 服务名称
#设定服务开机不启动
systemctl list-units
#列出已经开启的服务的当前状态
systemctl list-unit-files
#列出所有服务的开机启动状态(enable,disable,static)
systemctl list-dependencies 服务名称
#列出该服务的依赖(所有上级进程)
systemctl set-detault multi-user.target
#设定系统启动为多用户模式(无图形)
systemctl set-detault graphical.target
#设定系统启动为图形模式