如果您是 Linux 用戶或管理員,您需要知道如何管理系統上的服務。服務是在後台運行並提供基本功能(例如網絡、打印、日誌記錄等)的程序。
但是如何在 Linux 上列出、啟動、停止、啟用、禁用或重新啟動服務?答案是 systemctl 命令。此命令是 systemd 的一部分,systemd 是 Ubuntu 和 Debian 等 Linux 發行版的現代系統和服務管理器。
目錄
如果您是 Linux 初學者並且想使用 systemctel 管理這些服務,請按照以下步驟操作。
使用 systemctl 列出所有服務
要列出 Linux 系統上的所有服務,請在終端中運行此命令:
sudo systemctl list-units –type service
這將顯示一個包含五列的表格:UNIT、LOAD、ACTIVE、SUB 和 DESCRIPTION。
UNIT 列顯示服務單元文件的名稱,它是服務的配置和定義文件。該文件包含有關該服務的作用以及如何管理它的信息。您還可以在 DESCRIPTION 列中查看服務的快速描述符。
LOAD欄顯示服務單元文件是否加載到內存中。 ACTIVE 列顯示它是否是正在運行的服務。最後,SUB 列顯示服務的子狀態,例如運行、退出或失敗。
您還可以使用-a 或 –all 選項而不是 –type service 來列出所有類型的單元,而不僅僅是服務。
使用 systemctl 列出活動服務
如果您只想查看系統上當前活動(正在運行)的服務,請在 Linux 終端中運行此命令:
sudo systemctl list-units –type service –state active
這將過濾掉不活動(停止)或失敗的服務。
使用 systemctl 列出不活動的服務
同樣,如果您只想查看系統上當前不活動(已停止)的服務,請在終端中運行此命令:
sudo systemctl list-units –type service –state inactive
這將過濾掉活動(運行)或失敗的服務。
List Failed Services With systemctl
如果要查看系統上啟動或停止失敗的服務,請打開終端並運行此命令:
sudo systemctl list-units –type service –state failed
這將過濾掉任何當前活動(正在運行)或非活動(已停止)的服務。
使用 systemctl 列出已啟用的服務
要查看哪些服務已啟用以在系統啟動時自動啟動,請在終端中運行此命令:
sudo systemctl list-unit-files –type service –state enabled
這將向您顯示一個包含兩列的表格:UNIT FILE 和 STATE。 UNIT FILE 列顯示服務單元文件的名稱。 STATE 列顯示服務是否啟用。
使用 systemctl 列出禁用的服務
要查看哪些服務被禁用並且不會在系統啟動時自動啟動,請打開您的 Linux終端並運行此命令:
sudo systemctl list-unit-files –type service –state disabled
這將過濾掉啟用或屏蔽的服務。
使用 systemctl 顯示服務的詳細信息
要顯示有關係統上特定服務的更多詳細信息,請在終端中運行此命令:
sudo systemctl status
將
這將向您顯示描述、負載狀態、活動狀態、子狀態、進程 ID (PID)、內存使用情況、CPU 使用情況和最近服務等信息日誌。
您還可以使用 show 子命令而不是 status 以名稱=值格式顯示所有服務屬性。
使用 systemctl 啟動服務
要啟動系統上停止的服務,請在 Linux 終端中運行此命令:
sudo systemctl start
將
這將在背景並返回提示。您可以使用 status 子命令來驗證該服務是否正在運行。
使用 systemctl 停止服務
要停止系統上正在運行的服務,請在終端中運行此命令:
sudo systemctl stop
將
這將在後台停止服務並返回提示。您可以使用 status 子命令來驗證該服務是否已停止。
使用 systemctl 重啟服務
想要編輯和重新加載服務的配置文件並應用更改?如果這樣做,您之後需要重新啟動服務。
要重新啟動系統上正在運行的服務,請打開終端並運行此命令:
sudo systemctl restart
替換
這將在後台停止和啟動服務並返回到提示符。您可以使用 status 子命令來驗證該服務是否正在運行。
使用 systemctl 重新加載服務
一些服務支持在不停止和啟動的情況下重新加載它們的配置。重新加載服務允許您對這些服務的配置文件進行微小的更改而無需重新啟動它們。這比重新啟動更快,中斷更少。
要重新加載支持此功能的服務,請在終端中使用以下 systemctl 命令:
sudo systemctl reload
替換
這將在後台重新加載服務並返回到提示符。您可以使用 status 子命令來驗證該服務是否正在運行。
使用 systemctl 啟用服務
要使服務在系統啟動時自動啟動,請在終端中運行此命令:
sudo systemctl enable
將
這將創建一個從服務單元文件到/etc/systemd/system 下某個位置的符號鏈接,它告訴 systemd 在引導時啟動它。
您還可以使用 –now 選項同時啟用和啟動服務。例如:
sudo systemctl enable –now
使用systemctl禁用服務
禁用a要在系統啟動時自動啟動服務,請在 Linux 終端中運行此命令:
sudo systemctl disable
將
這將從/etc/systemd/system 中刪除符號鏈接,它告訴 systemd 不要在引導時啟動它。
您還可以使用 –now 選項同時禁用和停止服務:
sudo systemctl disable –now
使用 systemctl 列出屏蔽服務
屏蔽服務意味著將其單元文件鏈接到/dev/null,這可以防止它被 systemd 加載或操作。這增加了額外的保護層。
要查看哪些服務被屏蔽並且無法在您的系統上手動或自動啟動或停止,請在您的 Linux PC 終端中運行此命令:
sudo systemctl list-unit-files –type service –state masked
被屏蔽的服務列表將出現在列表中(在 STATE 列下列出了 masked)
屏蔽一個Service With systemctl
在終端中運行此命令以屏蔽服務在您的系統上啟動、手動或自動停止:
sudo systemctl mask
將
這將從服務單元創建符號鏈接文件到/dev/null 以防止它被 systemd 加載或操作。
使用 systemctl 取消屏蔽服務
您可以取消屏蔽之前被屏蔽的服務。這將刪除指向/dev/null 的符號鏈接,並允許它在其他地方使用和加載。
要取消屏蔽以前在系統上屏蔽的服務,請運行此命令:
sudo systemctl unmask
替換
控制您的 Linux PC
如果您的 Linux PC 使用 systemd 來管理系統服務,您可以使用 systemctl 命令來管理它們。您可以啟動、停止、重新加載、禁用和控制您的服務,從而更好地控制您的 Linux PC。
另一種管理 PC 的方法是限制對某些文件的訪問。您可以在 Linux PC 上使用 chmod 命令來允許(或禁止)訪問。
不確定您的 Linux 發行版是否適合?您應該嘗試使用另一個頂級 Linux 發行版,甚至嘗試使用可移植的 Linux 發行版。使用便攜式發行版可以讓您輕鬆地在它們之間切換。