如何在 Ubuntu 和其他 Linux 發行版中啟動、停止和重新啟動服務

2019-12-28 08:17:00

服務是必不可少的後台進程,它通常隨系統啟動,並在關機時關閉。如果你是系統管理員,那麼你會定期處理服務。如果你是普通桌面使用者,你可能會遇到需要重新啟動服務的情況,例如安裝 Barrier 來用於在計算機之間共用滑鼠和鍵盤。或在使用 ufw 設定防火牆時。

今天,我將向你展示兩種管理服務的方式。你將學習在 Ubuntu 或任何其他 Linux 發行版中啟動、停止和重新啟動服務。

systemd 與 init

如今,Ubuntu 和許多其他發行版都使用 systemd 而不是舊的 init。

在 systemd 中,可以使用 systemctl 命令管理服務。

在 init 中,你可以使用 service 命令管理服務。

你會注意到,即使你的 Linux 系統使用 systemd,它仍然可以使用 service 命令(與 init 系統一起使用的)。這是因為 service 命令實際上已重定向到 systemctl。systemd 引入了向後相容性,因為系統管理員們習慣使用 service 命令。

在本教學中,我將同時展示 systemctlservice 命令。

我用的是 Ubuntu 18.04,但其他版本的過程也一樣。

方法 1:使用 systemd 在 Linux 中管理服務

我從 systemd 開始,因為它被廣泛接受。

1、列出所有服務

為了管理服務,你首先需要知道系統上有哪些服務可用。你可以使用 systemd 的命令列出 Linux 系統上的所有服務:

systemctl list-unit-files --type service -all

systemctl list-unit-files

此命令將輸出所有服務的狀態。服務狀態有啟用enabled禁用disabled遮蔽masked(在取消遮蔽之前處於非活動狀態)、靜態static已生成generated

grep 命令 結合,你可以僅顯示正在執行的服務:

sudo systemctl | grep running

Display running services systemctl

現在,你知道了如何參照所有不同的服務,你可以開始主動管理它們。

注意: 下列命令中的 <service-name> 應該用你想管理的服務名代替。(比如:network-manager、ufw 等)

2、啟動服務

要在 Linux 中啟動服務,你只需使用它的名字:

systemctl start <service-name>

3、停止服務

要停止 systemd 服務,可以使用 systemctl 命令的 stop 選項:

systemctl stop <service-name>

4、重新啟動服務

要重新啟動 systemd 服務,可以使用:

systemctl restart <service-name>

5、檢查服務狀態

你可以通過列印服務狀態來確認你已經成功執行特定操作:

systemctl status <service-name>

這將以以下方式輸出:

systemctl status

這是 systemd 的內容。現在切換到 init。

方法 2:使用 init 在 Linux 中管理服務

init 的命令和 systemd 的一樣簡單。

1、列出所有服務

要列出所有 Linux 服務,使用:

service --status-all

service –status-all

前面的 [ – ] 代表禁用[ + ] 代表啟用

2、啟動服務

要在 Ubuntu 和其他發行版中啟動服務,使用命令:

service <service-name> start

3、停止服務

停止服務同樣簡單。

service <service-name> stop

4、重新啟動服務

如果你想重新啟動服務,命令是:

service <service-name> restart

5、檢查服務狀態

此外,要檢查是否達到了預期的結果,你可以輸出服務狀態:

service <service-name> status

這將以以下方式輸出:

service status

最重要的是,這將告訴你某項服務是否處於活躍狀態(正在執行)。

總結

今天,我詳細介紹了兩種在 Ubuntu 或任何其他 Linux 系統上管理服務的非常簡單的方法。 希望本文對你有所幫助。

你更喜歡哪種方法? 讓我在下面的評論中知道!