文章目录

  • 一、 系统引导过程
  • 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类型单元

一、 系统引导过程

系统引导过程大致分为以下五个阶段

centos 关机前执行脚本 centos7命令行关机_配置文件

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支持的单元类型。

centos 关机前执行脚本 centos7命令行关机_运行级别_02

2.2 systemd服务管理

systemd命令可以控制系统服务,涵盖了之前版本操作系统的service和chkconfig命令两者的功能。
在使用 systemctl命令时,可以省略服务单元名称的标识.service。就是 systemctl会默认把后缀标识当作.service来处理。

2.2.1 查看服务启动状态

我们可以使用systemctl status sshd.service命令查看服务启动状态

centos 关机前执行脚本 centos7命令行关机_centos 关机前执行脚本_03

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       //重新启动,使用该级别时将会重启主机