一、简介
- Linux启动流程基本相同,关键的不同点在于初始化进程,如下:
SysV: init, CentOS 5之前, 配置文件: /etc/inittab。
Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf。
Systemd: systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system。
- systemd介绍
- 系统启动和服务器守护进程管理器,负责在系统启动或运行时,激活系统资源,服务器进程和其它进程
- 新特性
- 系统引导时实现服务并行启动
- 按需启动守护进程
- 自动化的服务依赖关系管理
- 同时采用socket式与D-Bus总线式激活服务
- 系统状态快照
二、BIOS->Boot Loader->内核->初始化进程(systemd)
systemd:系统守护进程(第一个进程pid=1);配置文件单元Unit;管理命令systemctl等
-
Unit
- 类型:Service、Target、Device等
- 配置文件位置:/etc/systemd/system/;/usr/lib/systemd/system/;/etc/systemd/system/default.target(systemd默认Target)
- 格式
[Unit] Description #简短描述 Documentation #文档地址 Requires #当前 Unit 依赖的其他 Unit,如果它们没有运行,当前 Unit 会启动失败 Wants #与当前 Unit 配合的其他 Unit,如果它们没有运行,当前 Unit 不会启动失败 After #如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之前启动 Conflicts #这里指定的 Unit 不能与当前 Unit 同时运行 [Service] Type #定义启动时的进程行为 EnvironmentFile #环境配置文件 ExecStart #指明启动unit要运行命令或脚本的绝对路径 ExecStartPre #ExecStart前运行 ExecStartPost #ExecStart后运行 ExecStop #指明停止unit要运行的命令或脚本 [Install] Alias #当前 Unit 可用于启动的别名 Also #当前 Unit systemctl enable时,会被同时激活的其他 Unit WantedBy #它的值是一个或多个 Target,当前 Unit 激活时(enable)符号链接会放入/etc/systemd/system目录下面以 Target 名 + .wants后缀构成的子目录中,这样就能实现开机自启 RequiredBy #它的值是一个或多个 Target,当前 Unit 激活时,符号链接会放入/etc/systemd/system目录下面以 Target 名 + .required后缀构成的子目录中
-
管理命令
功能 CentOS6 CentOS7 启动 service name start systemctl start name.service 停止 service name stop systemctl stop name.service 重启 service name restart systemctl restart name.service 查看某服务当前激活与否的状态 - systemctl is-active name.service 查看所有已经激活的服务 - systemctl list-units --type service 查看所有服务 - systemctl list-units --type service --all 设定某服务开机自启 chkconfig name on systemctl enable name.service 设定某服务开机禁止启动 chkconfig name off systemctl disable name.service 查看所有服务的开机自启状态 chkconfig --list systemctl list-unit-files --type service 查看服务是否开机自启 - systemctl is-enabled name.service 启用 - systemctl mask name.service 禁用 - systemctl unmask name.service
三、BIOS->Boot Loader->内核->初始化进程(init)
- 运行级别:0关机、1单用户模式(系统管理员维护使用)、2无网络支持的多用户模式、3有网络支持的多用户模式、4保留未使用、5有网络支持有X-Window支持的多用户模式、6重启
- /etc/rc.d/rc[0-6].d:开机启动根据Linux运行级别执行对应目录下的脚本连接(连接到/etc/rc.d/init.d)
- /etc/rc.d/rc.local:/etc/rc.d/rc[0-6].d执行完再执行此文件
- /etc/rc.d/init.d:开机启动脚本文件
参考网址:
https://www.cnblogs.com/duzhaoqi/p/7582404.html
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html