1、开机启动流程
1)、Centos6 开机启动流程
2)、Centos7 开机启动流程
3)、Centos6与Centos7 开机启动流程的区别
4)、运行级别
(1)Centos6
级别 | 作用 | 级别 | 作用 |
---|---|---|---|
0 | 关机 | 1 | 单用户模式 |
2 | 暂未使用 | 3 | 字符界面(黑框) |
4 | 暂未使用 | 5 | 图形界面 |
6 | 重启 |
临时性的操作
[root@oldboy ~]# runlevel #查看级别
N 3 #N 表示上一次是什么级别;3 当前系统正在运行的级别
[root@oldboy ~]# init 3 #切换到3级别上
[root@oldboy ~]# vim /etc/inittab 修改文件内的参数,做永久的操作
(2)、Centos7
System V init 运行级别 | systemd目标名称作用 | |
---|---|---|
0 | runlevel0.targe,poweroff.target | 关机 |
1 | runlevel1.target,rescue.target | 单用户模式 |
2 | runlevel2.target,multi.target | 暂未使用) |
3 | runlevel3.target,multi.target | 字符界面(黑框) |
4 | runlevel4.target,multi.target | 暂未使用 |
5 | runlevel5.target,graphicaltarget | 图形界面 |
6 | runlevel6.target,reboo.target | 重启 |
a.查看当前的运行级别
[root@oldboy ~]# systemctl get-default
multi-user.target
b.修改系统下次启动时候的运行级别
[root@oldboy ~]# systemctl set-default multi�user.target
2、systemd
1)、systemd的由来
Linux一直以来都是采用init进程作为祖宗进程,但是init有两个缺点:
1、启动时间长。Init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。
2、启动脚本复杂,初始化完成后系统会加载很多脚本,脚本都会处理各自的情况,这会让脚本多而复杂。
Centos5 是启动速度最慢的,串行启动过程,无论进程相互之间有无依赖关系。
Centos6 相对启动速度有所改进。有依赖的进程之间依次启动而其他与之没有依赖关系的则并行同步启动。
Centos7 所有进程无论有无依赖关系则都是并行启动(当然很多时候进程没有真正启动而是只有一个信号或者说是标记而已,在真正利用的时候才会真正启动。)
3)、什么是systemd
systemd即为system daemon守护进程,systemd主要解决上文的问题而诞生,systemd的目标是,为系统的启动和管理提供一套完整的解决方案。
4)、systemd的优势
1、最新系统都采用systemd管理(RedHat7,CentOS7,Ubuntu15等)
2、Centos7支持开机并行启动服务,显著提高开机启动效率。
3、Centos7关机只关闭正在运行的服务,而Centos6全部都关闭一次。
4、Centos7服务的启动与停止不在使用脚本进行管理,也就是/etc/init.d下不在有脚本。
5、Centos7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。
5)、systemd相关配置文件
/usr/lib/systemd/system/ #类似Centos6系统的启动脚本,/etc/init.d/
/etc/systemd/system/ #类似Centos6系统的/etc/rc.d/rcN.d/
/etc/systemd/system/multi-user.target.wants/
6)、systemd管理服务相关命令
systemctl管理服务的启动、重启、停止、重载、查看状态等常用命令
systemctl start nginx 系统控制启动
systemctl stop nginx 系统控制停止
systemctl restart nginx 系统控制重新启动
systemctl reload nginx 系统控制重新加载
systemclt status nginx 系统状态
systemctl enable nginx #下一次开机启动nginx,于当前无关
systemctl disable nginx #下一次开机不启动nginx,于当前无关
7)、当我们使用systemctl 启动一个守候进程后,可以通过systemctl status查看此守候进程的状态。
进程 | 描述 |
---|---|
loaded | 服务单元的配置文件已经被处理 |
active(runing) | 服务成功完成一次的配置 |
active(exited) | 服务已经在运行但在等待某个事件 |
inactive | 服务没有在运行 |
enabled | 服务设定为开机启动 |
disabled | 服务设定为开机不启动 |
static | 服务开机不启动,但可以被其他服务调用启动 |
[root@oldboy ~]# #关机
shutdown -h now
poweroff
halt
init 0
systemctl poweroff
[root@oldboy ~]# #重启
reboot
shutdown -r now
init 6
systemctl reboot
3、单用户模式 超级权限 必须面对实体硬件
超级权限,必须面对实体,硬件能正常引导进入系统
使用场景
1)、配置文件错误导致无法启动
2)、忘记root密码
https://mp.weixin.qq.com/s/1f-zCq8j4gL3xiB3AV9K3A
(1)、第1步:重启Linux系统主机并出现引导界面时,按下键盘上的e键进入内核编辑界面。
(2)、在linux16这行的后面添加enforcing=0 init=/bin/bash,然后按下Ctrl + X组合键来运行修改过的内核程序。
(3)、大约5秒过后,进入到系统的单用户模式,依次输入以下命令,等待系统重启操作完毕,然后就可以使用新密码来登录Linux系统了。命令行执行效果如图所示。
4、救援模式
系统无法正常进入 比如没有内核、比如系统崩溃/比如grub被修改
1)、没有内核文件,只能使用救援模式进入
2)、系统崩溃, 要保留重要的数据的时,只能使用救援模式进入
3)、grub菜单出现问题, 只能使用救援模式进入
当系统坏了,无法登陆系统,但需要把里面的数据复制出来,怎么办?
(1)、步骤一、先挂载光盘,然后选择光盘引导为第一位
(2)、步骤二、进入故障排除模式-->然后选择救援模式
步骤三、挂载真实系统后,发现数据都还存在。