进程的管理
1.环境中进程前后台的调用
jobs 查看被打入后台的进程
- 查看后台进程为空,后台开启gedit,再查看即可看到gedit在后台运行
ctrl+z 把占用终端的进程打入后台
- 打开gedit,占用当前shell,无法输入命令,ctrl+z之后便可使用终端,jobs查看gedit在后台运行
- ctrl+c 也可以把把占用终端的进程关闭
fg jobsnum 把后台进程调回前台
bg jobsnum 把后台暂停的进程运行
comm & 用命令打开进程时直接在后台运行
firefox //前台运行
firefox & //后台运行
一次只能开启一个firefox 进程,看到两个是两个窗口
- 前台:占用终端
- 后台:不占用终端
注:有些不能在后台运行:例如vim
2.进程信号
(1)常用的信号等级
1 进程不关闭情况下重新加载(相当于不停机更新)
2 删除进程在内存中的数据=ctrl + c
3 删除鼠标在内存中的数据=ctrl + \; 现象为:隐藏鼠标显示
9 强行结束单个进程,不能被阻塞
15 正常关闭进程,可能被阻塞
18 运行暂停的进程
19 暂停某个进程,不能被阻塞
20 把进程打入后台,可能被阻塞
- man 7 signal 查看信号详细信息
用法:
kill -信号等级 进程pid
killall -信号等级 进程名字
pkill -u student -信号等级 //关闭所有student用户
- pkill -9 -u student 异常结束
- 异常结束造成打开student用户的shell无法正常使用,必须关闭
pkill -9 -P student //结束父进程及其子进程
3.进程的动态监控
top 1 显示cpu每个核的负载
s 调整cpu刷新频率
c cpu负载排序
m 内存使用量排序
u 查看指定用户的进程,不写回车表示所有的
k 对指定的进程发起信号
z 改变颜色
h 查看帮助
q 退出top;退出h
- s
- c
- u
- k
- 先输入pid,再输入信号
4.控制服务
(1)什么是服务
- 服务是指为他人做事,并使他人从中受益的一种有偿或无偿的活动
- 服务器:安装了服务型软件的机器
(2)用什么控制服务
- 系统初始化进程可以对服务进行相应的控制
(3)当前系统初始化进程是什么
systemd 系统初始化进程
//用pstree显示系统中的进程树
//树根就是系统初始化进程
(4)进程控制命令
systemctl 服务控制命令
systemctl status sshd(服务) 查看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 设定系统启动级别为多用户模式(无图形)init3
systemctl set-default graphical.target 设定系统启动级别为图形模式 init5