目錄
- 【二】 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
來確定如何進行設備掛載。