Linux CentOS7 基础:系统启动原理

CentOS6 和 CentOS7 启动过程及相关配置文件

引导顺序:

(1)UEFI 或 BIOS 初始化,运行 POST 开机自检;

(2)选择启动设备

(3)引导装载程序,CentOS7 是 grub2;

(4)加载装载程序的配置文件;

         (/etc/grub.d/ 根据此目录下文件设置 grub.cfg;/etc/default/grub 根据此文件设置 grub.cfg;/boot/grub2/grub.cfg)

(5)加载内核选项;

(6)加载 initramfs 初始化伪文件系统

         (虚拟文件系统,/boot/initramfs 能通过 boot loader 加载到内存中,用于提供启动过程中的重要内核模块)

(7)内核初始化,CentOS7 使用 systemd 代替 init;

(8)执行 initrd.target 所有单元,包括挂载 /etc/fstab;

(9)从 initramfs 根文件系统切换到磁盘根目录;

(10)systemd 执行默认 target 配置,配置文件为 /etc/systemd/system/default.target;

(11)systemd 执行 sysinit.target 初始化系统及 basic.target 准备操作系统;

(12)systemd 启动 multi-user.target 下的本机与服务器服务;

(13)systemd 执行 multi-user.target 下的 /etc/rc.d/rc.local;

(14)systemd 执行 multi-user.target 下的 getty.target 及登录服务;

(15)systemd 执行 graphical 需要的服务。

启动过程:

Systemd 运行原理: 

Systemd 概述:

Systemd 即为 System daemon 守护进程,是 linux 下的一种 init 软件,开发目标是系统服务间的依赖关系,并依次实现系统初始化时服务的并行启动,同时达到降低 Shell 的系统开销的效果,最终代替现在常用的 System V 和 BSD 风格 init 程序。与多数发行版使用的 System V 风格 init 相比,Systemd 采用了以下新技术:(1)采用 Socket 激活式与总线激活式服务,以提高相互依赖的各服务的并行运行功能;(2)用 Cgroups 代替 PID 来追踪进程,以此即使是两次 fork 之后生成的守护进程也不会脱离 Systemd 的控制。

unit 对象:

unit 表示不同类型的 Systemd 对象,通过配置文件进行标识和配置;文件中主要包括了系统服务、监听 Socket、保存的系统快照以及其它与 init 相关的信息。

配置文件:/usr/lib/systemd/systemd/   # 这个目录存储每个服务的启动脚本,类似于之前的 /etc/init.d/

                 /run/systemd/system/   # 系统执行过程中所产生的服务脚本,比上面的目录优先运行

                 /etc/systemd/system/   # 管理员建立的执行脚本,类似于 /etc/rc.d/rcN.d/Sxx 类的功能,比上面的目录优先运行

注意:对于新创建的 unit 文件,或者修改了的 unit 文件,要通知 systemd 重载此配置文件,而后可以选择重启

CentOS5 CentOS6 CentOS7 启动过程:

管理系统服务:

 CentOS6CentOS7
启动service name startsystemctl start name.service
停止service name stopsystemctl stop name.service
重启service name restartsystemctl restart name.service
状态service name statussystemctl status name.service
重载或重启服务(先加载再启动)-systemctl reload-or-restart name.service
 CentOS6CentOS7
设置某服务开机启动chkconfig name onsystemctl enable name.service
设置某服务禁止开机启动

chkconfig name off

systemctl disable name.service
查看所有服务的开机自启状态chkconfig --listsystemctl list-unit-files --type service 
用来列出该服务在哪些运行级别下启动和禁用chkconfig sshd --listls /etc/systemd/system/*.wants/sshd.service
查看服务是否开机自启-systemctl is-enabled name.service
查看服务状态systemctl list-unit-files
状态分类 
loadedUnit 配置文件已处理
active(running)一次或多次持续处理的运行
active(exited)成功完成一次性的配置
active(waiting)运行中,等待一个事件
inactive不运行
enabled开机启动
disabled开机不启动
static开机不启动,但可被另一个启用的服务激活

运行级别: 

CentOS6:

init 0关机
init 1 单用户模式
init 2无网络,支持多用户模式
init 3有网络支持的多用户模式(字符界面)
init 4保留,未使用
init 5有网络支持,支持多用户模式(图形界面)
init 6重新引导系统,重启

CentOS7:

运行级别的切换:

CentOS6/7 
init 3切换到字符界面
init 5切换到图形界面
CentOS7 

systemctl isolate mylti-user.target

systemctl isolate runlevel3.target

切换到字符界面
system setdefault mylti-user.target设置默认启动字符界面

ll /etc/systemd/system/default.target

查看链接
  • 12
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值