文章目录
- 一、 系统引导过程
- 1.1 引导过程讲解
- (1)、开机自检(BIOS)
- (2)、MBR引导
- (3)、GRUB菜单
- (4)、加载内核(kernel)
- (5)、init进程初始化
- 1.1.1 init命令
- 1.2 systemd进程
- 二、 systemd管理
- 2.1 systemd单元
- 2.2 systemd服务管理
- 2.2.1 查看服务启动状态
- 2.2.2 启动与停止服务
- 2.2.3 配置文件
- 2.3 Target类型单元
一、 系统引导过程
系统引导过程大致分为以下五个阶段
1.1 引导过程讲解
(1)开机自检(BIOS)
- 服务器主机开机后将根据主板BIOS(Basic Input/Output
System,基本输入输出系统)中的设置对CPU、内存、显卡、键盘等硬件设备进行初步检测 - 检测成功后找到第一块能够引引导的设备,根据预设的启动顺序移交系统控制权,绝大多数时候会移交给本机硬盘。
自检过程中可以根据主机的POST信息进入配置,通常是按F2
(2)MBR引导
- 在BIOS启动移交控制权给硬盘后,根据硬盘的第一个扇区中MBR(Master Boot Record,主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区,或者直接根据MBR记录中的引导信息调用菜单(GRUB)
- 简单来说就是找到硬盘MBR引导分区,读取GRUB信息
(3)GRUB菜单
- GRUB(GRand Unified Bootloader简称“GRUB”)是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。
- 系统控制权传递给GRUB以后,将会显示启动菜单提供给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核
(4)加载内核(kernel)
- Linux内核是一个预先编译好的二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度
- 控制权交给内核以后,就可以完全掌握Linux操作系统的运行过程。比如 加载内核和镜像文件等等。
(5)init进程初始化
- 为了完成进一步的系统引导过程。Linux内核首先将系统中的“/sbin/init”程序加载到内存中运行,运行中的程序就叫做进程,init进程负责完成一系列的初始化进程,最后等待用户登录。
- Linux内核加载运行 /sbin/init程序,也就是init进程是系统的第一个进程
1.1.1 init命令
- init0 关机状态,使用该级别时会关闭主机
- init1 单用户模式,不需要密码验证即可登录系统,多用于系统维护
- init2 用户定义/域特定运行级别,默认等同于3
- init3 字符界面的完整用户模式,大多数服务器主机运行在此级别
- init4 用户定义/域特定运行级别,默认等同于3
- init5 图形界面的多用户模式,提供了图形桌面操作环境
- init6 重新启动,使用该级别时将会重启主机
1.2 systemd进程
- Linux系统进程(运行中的程序)使用数字标记,每个进程的身份标记成为PID(process id),从Centos7版本开始systemd成为PID为1的初始化进程,也就是系统的第一个进程。所以systemd进程不允许轻易的被终止。
systemd的诞生主要目的是为了将更多的服务并发启动,以此来提高系统启动速度。
最大的优点在于具有提供按需启动服务的能力,只有在某个服务被真正请求时才进行启动。当服务结束时systemd就将其关闭,等待下次需要时启动。
二、 systemd管理
2.1 systemd单元
在systemd中不同类型的systemd对象被统一称为单元,systemd单元文件最初默认放在/lib/systemd/
system目录中,新的软件安装都会在自动在这个目录中添加一个配置文件。systemctl命令用于管理systemd单元。可以使用systemctl -t help命令来查询systemd支持的单元类型。
2.2 systemd服务管理
systemd命令可以控制系统服务,涵盖了之前版本操作系统的service和chkconfig命令两者的功能。
在使用 systemctl命令时,可以省略服务单元名称的标识.service。就是 systemctl会默认把后缀标识当作.service来处理。
2.2.1 查看服务启动状态
我们可以使用systemctl status sshd.service命令查看服务启动状态
2.2.2 启动与停止服务
systemctl {start|stop|restart|reload} named.service
- restart命令相当于先停止然后再启动服务,服务的PID值会改变
- reload是使服务读取和重新加载此服务的配置文件,不会完全停止和启动服务,所以PID值不会变
2.2.3 配置文件
systemd开机时默认会从/etc/systemd/system/目录中读取服务的配置文件用于启动该服务,实际上/etc/systemd/system/目录中存放的是软链接文件,指向/usr/lib/systemd/system/目录中真正的配置文件。
2.3 Target类型单元
分别对应init命令中的0到6
target //关机状态,使用该级别时会关闭主机
rescue.target //单用户模式,不需要密码验证即可登录系统,多用于系统维护
multi-user.target //用户定义/域特定运行级别
multi-user.target //字符界面的完整用户模式,大多数服务器主机运行在此级别
multi-user.target //用户定义/域特定运行级别
graphical.target //图形界面的多用户模式,提供了图形桌面操作环境
reboot.target //重新启动,使用该级别时将会重启主机