服務是必不可少的後臺進程,它一般隨系統啓動,並在關機時關閉。若是你是系統管理員,那麼你會按期處理服務。若是你是普通桌面用戶,你可能會遇到須要重啓服務的狀況,例如安裝 Barrier 來用於在計算機之間共享鼠標和鍵盤。或在使用 ufw 設置防火牆時。linux
今天,我將向你展現兩種管理服務的方式。你將學習在 Ubuntu 或任何其餘 Linux 發行版中啓動、中止和重啓服務。git
systemd 與 initgithub
現在,Ubuntu 和許多其餘發行版都使用 systemd 而不是舊的 init。ruby
在 systemd 中,可使用
systemctl
命令管理服務。bash在 init 中,你可使用
service
命令管理服務。學習你會注意到,即便你的 Linux 系統使用 systemd,它仍然可使用
service
命令(與 init 系統一塊兒使用的)。這是由於service
命令實際上已重定向到systemctl
。systemd 引入了向後兼容性,由於系統管理員們習慣使用service
命令。spa在本教程中,我將同時展現
systemctl
和service
命令。3d
我用的是 Ubuntu 18.04,但其餘版本的過程也同樣。rest
我從 systemd 開始,由於它被普遍接受。code
爲了管理服務,你首先須要知道系統上有哪些服務可用。你可使用 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 系統上管理服務的很是簡單的方法。 但願本文對你有所幫助。
你更喜歡哪一種方法? 讓我在下面的評論中知道!