服務是必不可少的後台進程,它通常隨系統啟動,並在關機時關閉。如果你是系統管理員,那麼你會定期處理服務。如果你是普通桌面使用者,你可能會遇到需要重新啟動服務的情況,例如安裝 Barrier 來用於在計算機之間共用滑鼠和鍵盤。或在使用 ufw 設定防火牆時。
今天,我將向你展示兩種管理服務的方式。你將學習在 Ubuntu 或任何其他 Linux 發行版中啟動、停止和重新啟動服務。
systemd 與 init
如今,Ubuntu 和許多其他發行版都使用 systemd 而不是舊的 init。
在 systemd 中,可以使用
systemctl
命令管理服務。在 init 中,你可以使用
service
命令管理服務。你會注意到,即使你的 Linux 系統使用 systemd,它仍然可以使用
service
命令(與 init 系統一起使用的)。這是因為service
命令實際上已重定向到systemctl
。systemd 引入了向後相容性,因為系統管理員們習慣使用service
命令。在本教學中,我將同時展示
systemctl
和service
命令。
我用的是 Ubuntu 18.04,但其他版本的過程也一樣。
我從 systemd 開始,因為它被廣泛接受。
為了管理服務,你首先需要知道系統上有哪些服務可用。你可以使用 systemd 的命令列出 Linux 系統上的所有服務:
systemctl list-unit-files --type service -all
此命令將輸出所有服務的狀態。服務狀態有啟用、禁用、遮蔽(在取消遮蔽之前處於非活動狀態)、靜態和已生成。
與 grep 命令 結合,你可以僅顯示正在執行的服務:
sudo systemctl | grep running
現在,你知道了如何參照所有不同的服務,你可以開始主動管理它們。
注意: 下列命令中的 <service-name>
應該用你想管理的服務名代替。(比如:network-manager、ufw 等)
要在 Linux 中啟動服務,你只需使用它的名字:
systemctl start <service-name>
要停止 systemd 服務,可以使用 systemctl
命令的 stop
選項:
systemctl stop <service-name>
要重新啟動 systemd 服務,可以使用:
systemctl restart <service-name>
你可以通過列印服務狀態來確認你已經成功執行特定操作:
systemctl status <service-name>
這將以以下方式輸出:
這是 systemd 的內容。現在切換到 init。
init 的命令和 systemd 的一樣簡單。
要列出所有 Linux 服務,使用:
service --status-all
前面的 [ – ]
代表禁用,[ + ]
代表啟用。
要在 Ubuntu 和其他發行版中啟動服務,使用命令:
service <service-name> start
停止服務同樣簡單。
service <service-name> stop
如果你想重新啟動服務,命令是:
service <service-name> restart
此外,要檢查是否達到了預期的結果,你可以輸出服務狀態:
service <service-name> status
這將以以下方式輸出:
最重要的是,這將告訴你某項服務是否處於活躍狀態(正在執行)。
今天,我詳細介紹了兩種在 Ubuntu 或任何其他 Linux 系統上管理服務的非常簡單的方法。 希望本文對你有所幫助。
你更喜歡哪種方法? 讓我在下面的評論中知道!