在 Linux 上管理系統服務(daemon),現在幾乎都離不開 systemctl 這個指令。這篇文章整理 systemctl 的指令語法、每個 subcommand 的用途,以及以 atd 服務為例的實際操作範例,讓你不用再翻手冊就能完成啟動、停止、開機啟用等日常服務管理工作。
什麼是 systemctl?為什麼它取代了 service 和 chkconfig?
systemctl 是系統服務管理的指令,它將傳統的 service 和 chkconfig 這兩個命令組合到一起:service 負責的「立即啟動/停止」與 chkconfig 負責的「開機是否啟用」,現在都交由 systemctl 一個指令處理。只要系統採用 Systemd(CentOS 7 之後、多數主流發行版),服務管理就應該以 systemctl 為準。
以下是一張當時整理的指令總覽截圖:

systemctl 的語法怎麼寫?
基本語法只有一行:
[root@study ~]# systemctl [command] [unit]
其中 unit 就是要操作的服務名稱(通常帶 .service 副檔名,可省略),command 則主要有以下這些:
| command | 說明 |
|---|---|
start | 立刻啟動後面接的 unit |
stop | 立刻關閉後面接的 unit |
restart | 立刻關閉後啟動後面接的 unit,亦即執行 stop 再 start 的意思 |
reload | 不關閉後面接的 unit 的情況下,重新載入設定檔,讓設定生效 |
enable | 設定下次開機時,後面接的 unit 會被啟動 |
disable | 設定下次開機時,後面接的 unit 不會被啟動 |
status | 目前後面接的這個 unit 的狀態,會列出有沒有正在執行、開機預設執行否、登錄等資訊 |
is-active | 目前有沒有正在運作中 |
is-enabled | 開機時有沒有預設要啟用這個 unit |
簡單記法:start/stop/restart/reload 管「現在此刻」,enable/disable 管「下次開機」,status/is-active/is-enabled 用來查狀態。
systemctl 實際使用範例
以 atd 服務為例,常用的操作如下:
啟動 atd 服務:
[root@study ~]# systemctl start atd.service
關閉 atd 服務:
[root@study ~]# systemctl stop atd.service
查看服務目前狀態:
[root@study ~]# systemctl status atd.service
設定開機時自動啟動:
[root@study ~]# systemctl enable atd.service
設定開機時不要自動啟動:
[root@study ~]# systemctl disable atd.service
查看所有已啟動的服務:
[root@study ~]# systemctl list-units --type=service
重啟某個服務:
[root@study ~]# systemctl restart atd.service
systemctl status 的輸出特別實用:它會同時告訴你服務現在是否在執行(active (running))、有沒有被設定為開機啟動(enabled/disabled),以及最近的日誌,一行指令就能掌握服務全貌。
常見問題
systemctl 和傳統的 service、chkconfig 有什麼差別?
systemctl 把 service 的啟停功能與 chkconfig 的開機啟用設定合併成一個指令。在採用 Systemd 的發行版(如 CentOS 7+)上,service 與 chkconfig 只是相容層,建議直接使用 systemctl。
systemctl enable 和 systemctl start 有什麼不同?
start 是「現在立刻」啟動服務,重開機後不會自動啟動;enable 是設定「下次開機」時自動啟動服務,但不會立刻啟動。要同時達到兩個效果,可以連續執行 systemctl enable --now <unit>。
如何確認服務目前是否正在執行?
用 systemctl status <unit> 可以看到完整狀態與日誌;只想快速確認是否在運作,可用 systemctl is-active <unit>,回傳 active 即代表執行中。
如何列出系統上所有已啟動的服務?
執行 systemctl list-units --type=service 可列出目前載入且正在運作的服務。若要包含開機啟用但未執行的,可加上 --all 參數。
參考資料
- 本文為 IT邦幫忙鐵人賽系列筆記,指令說明參考鳥哥的 Linux 私房菜之 Systemd 服務管理章節。
延伸閱讀
- 查看某個 Linux 裡服務的狀態:同樣聚焦 Linux、服務管理,可接著比較不同情境的做法。
- 使用 systemctl 操作 Linux 系統層級與 target:同樣聚焦 Linux、systemctl,可接著比較不同情境的做法。
- Windows Services 設置教學:把 EXE 程式註冊為 Windows 服務:同樣聚焦 服務管理,可接著比較不同情境的做法。
最後更新
2026-08-28(原文發布於 2019-10-01,本文保留原始筆記內容並補上 GEO 結構。)
關於作者
Claire Chang | 企業 AI 導入與流程轉型顧問。專注於 AI Agent 架構設計、ERP 系統整合與企業 AI 治理。
首次發布:2019-10-01
