引入
系统启动流程
- 计算机加电
- 开机自检(BIOS)
- MBR主引导记录
- Grub菜单
- 加载内核
在加载内核这一步会读取操作系统的运行级别
centos7系统表面是有”运行级别“这个概念,实际上是为了兼容以前的系统
每个所谓的”运行级别“都有对应的软连接指向,默认的启动级别是/etc/systemd/system/default.target
根据他的指向可以知道系统要进入哪个模式
一.systemd 与 init 简介
1.init
- init 进程是系统启动的第一个进程, PID号为 1.
- init进程的从它开始启动,到下一个程序开始,都是以一个进程结束再进行另一个进程的方式(串行)
- 这样做的显而易见的缺点就是执行速度慢,没有一整套的系统来管理
- 并且/ect/目录下的随便一个脚本简直长的发指
- 关机过程差不多是相反的过程,首先init停止所有服务,最后阶段会卸载文件系统。
2.于是systemd诞生了
- systemd是有Redhat的一个员工首先提出来
3.systemd
- centos7启动的第一个程序systemd, PID号为0
- Systemd 系统管理守护进程
- systemd几乎完全兼容传统的SysV init 系统
- 作用: 减少系统引导时间与计算开销
- Systemd引入了并行启动的概念
- 它在内核启动后,服务器什么的全部被systemd接管, 内核只是用来管理硬件资源,相当于内核被架空了
二.系统启动级别
⛅运行级别 0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
⛅运行级别 1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
⛅运行级别 2:多用户状态(没有NFS)
⛅运行级别 3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
⛅运行级别 4:系统未使用,保留
⛅运行级别 5: X11控制台,登陆后进入图形GUI模式
⛅运行级别 6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
三.如何设置默认启动级别
1.init命令
-
现在很多Linux系统都默认启动等级为5。如果我们想切换系统等级,可使用
init
命令# init 3 #多用户
-
这样就可以切换到多用户状态且带有网络文件系统了, 这种方式对于CentOS7也适用
-
但想修改默认启动级别,Centos 7同其他Linux稍显不同了。
2.Centos 6 与 Centos 7 的不同
-
centos6是通过修改
/etc/inittab
来修改默认运行级别的 -
在centos7下运行vi /etc/inittab 结果如下
⛅可以看到,里面除了注释,什么也没有,并没有centos6中设置默认运行级别的方式
⛅但注释告诉了我们 启动级别 3(多用户) 和 启动级别 5(图形化操作界面) 的使用
⛅以及用 targets 替代 runlevels, 即Centos 7采用加载targets的方式替代之前的启动级别
3.Centos 7 启动级别文件及文件路径
- 在命令行输入 ls /usr/lib/systemd/system/
# ls /usr/lib/systemd/system/ #查看启动级别文件
4.启动级别设置命令
- 查看当前默认启动的 target
# systemctl get-default
- 设置默认启动的 target
# systemctl set-default multi-user.target #设置多用户状态
# systemctl set-default graphical.target #修改为图形界面状态
.......................
.............
.....
5.运行级别对应表
init级别 | target |
---|---|
0 | shutdown.target |
1 | emergency.target |
2 | rescure.target |
3 |
multi-user.target |
4 | 系统未,使用保留 |
5 |
graphical.target |
6 | reboot.target |