图 3: systemd 启动图
sysinit.target 和 basic.target 目标可以看作启动过程中的检查点 。尽管 systemd 的设计目标之一是并行启动系统服务,但是某些服务和功能目标必须先启动,然后才能启动其它服务和目标 。直到该检查点所需的所有服务和目标被满足后才能通过这些检查点 。
当 sysinit.target 所依赖的所有单元都完成时,就会到达 sysinit.target 。所有这些单元,包括挂载文件系统、设置交换文件、启动 Udev、设置随机数生成器种子、启动低层服务以及配置安全服务(如果一个或多个文件系统是加密的)都必须被完成,但在 sysinit.target 中,这些任务可以并行执行 。
sysinit.target 启动了系统接近正常运行所需的所有低层服务和单元,它们也是进入 basic.target 所需的 。
在完成 sysinit.target 之后,systemd 会启动实现下一个目标所需的所有单元 。basic.target 通过启动所有下一目标所需的单元来提供一些额外功能 。包括设置为各种可执行程序目录的路径、设置通信套接字和计时器之类 。
最后,用户级目标 multi-user.target 或 graphical.target 被初始化 。要满足 graphical.target 的依赖必须先达到 multi-user.target 。图 3 中带下划线的目标是通常的启动目标 。当达到这些目标之一时,启动就完成了 。如果 multi-user.target 是默认设置,那么你应该在控制台上看到文本模式的登录界面 。如果 graphical.target 是默认设置,那么你应该看到图形的登录界面 。你看到的具体的 GUI 登录界面取决于你的默认显示管理器 。
引导手册页还描述并提供了引导到初始化 RAM 磁盘和 systemd 关机过程的图 。
systemd 还提供了一个工具,该工具列出了完整的启动过程或指定单元的依赖项 。单元是一个可控的 systemd 资源实体,其范围可以从特定服务(例如 httpd 或 sshd)到计时器、挂载、套接字等 。尝试以下命令并滚动查看结果 。
systemctl list-dependencies graphical.target
注意,这会完全展开使系统进入 graphical.target 运行模式所需的顶层目标单元列表 。也可以使用 --all 选项来展开所有其它单元 。
systemctl list-dependencies --all graphical.target
你可以使用 less 命令来搜索诸如 target、slice 和 socket 之类的字符串 。
现在尝试下面的方法 。
systemctl list-dependencies multi-user.target
和
systemctl list-dependencies rescue.target
和
systemctl list-dependencies local-fs.target
和
systemctl list-dependencies dbus.service
这个工具帮助我可视化我正用的主机的启动依赖细节 。继续花一些时间探索一个或多个 Linux 主机的启动树 。但是要小心,因为 systemctl 手册页包含以下注释:
“请注意,此命令仅列出当前被服务管理器加载到内存的单元 。尤其是,此命令根本不适合用于获取特定单元的全部反向依赖关系列表,因为它不会列出被单元声明了但是未加载的依赖项 。”结尾语即使在没有深入研究 systemd 之前,很明显能看出它既强大又复杂 。显然,systemd 不是单一、庞大、独体且不可知的二进制文件 。相反,它是由许多较小的组件和旨在执行特定任务的子命令组成 。
本系列的下一篇文章将更详细地探讨 systemd 的启动,以及 systemd 的配置文件,更改默认的目标以及如何创建简单服务单元 。
资源互联网上有大量关于 systemd 的信息,但是很多都很简短、晦涩甚至是带有误导 。除了本文提到的资源外,以下网页还提供了有关 systemd 启动的更详细和可靠的信息 。
- Fedora 项目有一个很好的实用的 systemd 指南。它有你需要知道的通过 systemd 来配置、管理和维护 Fedora 主机所需的几乎所有知识 。
- Fedora 项目还有一个不错的 速记表,将老的 SystemV 命令与对比的 systemd 命令相互关联 。
- 有关 systemd 的详细技术信息及创建它的原因,请查看 Freedesktop.org 对 systemd 描述。
- Linux.com 的“systemd 的更多乐趣”提供了更高级的 systemd 信息和技巧。
- 重新思考 1 号进程
- systemd 系统管理员篇 I
- systemd 系统管理员篇 II
- systemd 系统管理员篇 III
- systemd 系统管理员篇 IV
推荐阅读
- 1分钟!学会用Excel自动记录时间,告别手动低效
- 为什么会爱上一个不爱我的人-喜欢上一个不爱你的人-_1
- 爱上茶是种瘾,是瘾组图
- 爱上纯料普洱,8种普洱古树纯料茶
- 爱上红茶的碧螺春,碧螺春的品质等级
- cad怎么画箭头?CAD妙招-CAD绘制箭头的3种方法,你学会了吗
- 爱上政和白茶,政和大白荼产地
- 七个步骤学会使用百度carlife,车机互联很方便
- 动态路由协议RIP配置,带你一分钟学会
- 如何保护肺部,学会五个养肺的方法