目录
- 【二】 Systemd 单元(Unit)的概念
本教程将由浅入深的介绍 linux 中 Systemd 的知识和相关使用(同时也方便自己后续查阅)
【二】 Systemd 单元(Unit)的概念
虽然我想介绍的比较偏实际操作,但是 Unit 的概念对于理解 systemd 非常重要,所以单独介绍一下。
在 Systemd 里,Unit 是管理系统资源的基本单元。它是对系统中各类资源(如服务、设备、挂载点等)的抽象表达,借助配置文件来定义资源的属性、启动条件和依赖关系。
Systemd 借助管理这些 Unit 单元,达成系统的启动、停止、重启等操作,提升了系统管理的效率与灵活性。
Unit 主要包括以下类型,systemd 通过配置文件的 扩展名 来识别 Unit 的类型。
- 服务(Service):用于管理后台进程,像网络服务、数据库服务等。
- 目标(Target):代表系统的特定状态或一组相关服务的集合状态。例如
multi-user.target
表示多用户模式,graphical.target
表示图形界面模式。它可作为其他服务启动顺序的参考,便于组织和协调服务启动。 - 设备(Device):对应于系统中的硬件设备。Systemd 可根据设备的插入和移除自动加载或卸载相关驱动和服务。
- 挂载点(Mount):用于定义文件系统的挂载点。描述了如何以及在何处挂载文件系统,类似于 /etc/fstab 的功能。Systemd 可在系统启动时自动挂载文件系统,确保数据存储的可用性。
- 自动挂载点(Automount):与 Mount 配合,当访问特定目录时自动触发挂载文件系统。这提供了按需挂载的机制,减少了不必要的资源占用,提高了系统性能。
- 套接字(Socket):管理套接字资源,包括网络和本地套接字。Systemd 监听特定端口或路径,有连接请求时自动启动相应服务,实现服务的按需启动,节省系统资源。
- 交换分区(Swap):管理系统的交换分区。在系统启动时激活交换分区,当内存不足时,将内存数据交换到交换分区,保证系统稳定运行。
- 切片(Slice):对系统资源进行分组管理。将相关服务或进程划分到同一切片,可限制其使用的 CPU、内存等资源,实现资源合理分配和隔离。
- 路径(Path):监视文件系统路径变化。当指定路径发生特定事件(如文件修改)时,触发相应操作,如启动服务,实现系统的自动化响应。
systemd 会根据配置文件的扩展名的不同来读取特定的配置,例如服务(Service)类型的配置文件,会尝试读取 ExecStart
和 ExecStop
来确定如何启动和停止服务;
而挂载(Mount)类型的配置文件,systemd 会尝试读取 What
和 Where
来确定如何进行设备挂载。