在使用 Linux 系統時,我們經常會接觸到「守護行程(Daemon)」和「systemd 單元(Unit)」這兩個術語。這兩個概念在 Linux 作業系統中都扮演著重要角色,但它們的含義與功能並不相同。本文將以初學者也容易理解的方式,介紹守護行程與 systemd 單元的概念、差異,以及常見的類型。
1. 什麼是守護行程(Daemon)?
守護行程是一種在背景中執行的程式。它通常會在系統啟動後自動運作,負責執行某些特定功能,例如網路服務、資料庫服務或其他系統服務。守護行程通常不會直接與使用者互動,而是持續在背景中運行。
守護行程的主要特徵:
- 在背景中執行:守護行程通常會在系統運行期間持續工作。
- 可自動啟動:許多守護行程會在系統開機時自動啟動。
- 命名規則:許多守護行程的名稱習慣以「d」結尾。例如,
sshd是提供 SSH 服務的守護行程,httpd則是提供網頁伺服器功能的守護行程。
2. 什麼是 systemd 單元(Unit)?
systemd 是現代 Linux 系統中常見的初始化系統與服務管理器。它負責管理系統啟動流程,以及各種服務的啟動、停止與運行狀態。為了有效管理這些資源,systemd 引入了 單元(Unit) 的概念。
單元可以理解為 systemd 用來管理各種系統資源的基本單位。它不僅包含守護行程,還包括計時器、掛載點、Socket、目標等不同類型的對象。
常見的單元類型:
- 服務單元(.service):用來管理類似守護行程的背景服務。
- 計時器單元(.timer):根據指定時間或週期來執行任務。
- 掛載單元(.mount):用來管理檔案系統的掛載。
- Socket 單元(.socket):用來管理網路 Socket,並可在需要時觸發相關服務啟動。
- 目標單元(.target):用來將多個單元分組,以表示系統的某種運行狀態。
3. 守護行程與 systemd 單元有什麼不同?
- 守護行程:本質上是一個在背景中執行的程式,通常負責長時間持續運作的服務。
- systemd 單元:是 systemd 用來管理各種系統資源的單位,範圍比守護行程更廣。
換句話說,守護行程可以是 systemd 所管理的其中一種對象,但並不是所有 systemd 單元都是守護行程。
systemd 除了能管理守護行程之外,也能管理計時器、掛載點、Socket 等其他系統資源。
4. 透過例子理解守護行程與 systemd 單元
sshd.service:這是一個服務單元,用來管理 SSH 守護行程,讓使用者可以透過 SSH 進行遠端登入。cron.service:cron是用來定期執行任務的程式,而cron.service則是由 systemd 管理它的服務單元。tmp.mount:這是一個用來掛載/tmp目錄的掛載單元。它不是守護行程,但同樣是 systemd 所管理的重要系統資源之一。
5. 總結
守護行程是在背景中執行的程式,通常屬於系統服務的一部分;而 systemd 單元則是 systemd 用來管理各種系統資源的基本單位。守護行程只是其中一種類型,並不能代表所有單元。
對剛接觸 Linux 的使用者來說,這兩個概念確實容易混淆。不過可以先簡單記住:
- 守護行程:在背景中持續執行的程式
- systemd 單元:systemd 用來管理各種系統資源的單位
透過 systemd 對各類單元的管理,Linux 系統才能更有條理地啟動、運行與維護。
下篇文章預告:下一篇將介紹用來控制 systemd 單元的命令 systemctl,包括如何啟動、停止、啟用與停用單元等基本操作。
1
三月 09, 2026 06:31
請問這部落格全部只有AI生成的文章嗎
whitedec
三月 16, 2026 05:48
不是的,這個部落格的文章不是 AI 自動生成的,而是由我親自撰寫。
我在寫作或潤飾時,會使用平台內建的 AI 功能作為輔助,但 AI 只是協助工具,並不是文章的主體創作者。
另外,這篇文章的原文其實是韓文,您現在看到的是翻譯版本。若讀起來有些像 AI 翻譯的語氣,還請見諒,但原文確實是由我本人在 AI 協助下完成的。