1. 程式人生 > >CentOS 7中啟動/停止/重啟服務

CentOS 7中啟動/停止/重啟服務

CentOS 7.0中一個最主要的改變,就是切換到了systemd。它用於替代紅帽企業版Linux前任版本中的SysV和Upstart,對系統和服務進行管理。systemd相容SysV和Linux標準組的啟動指令碼。

Systemd是一個Linux作業系統下的系統和服務管理器。它被設計成向後相容SysV啟動指令碼,並提供了大量的特性,如開機時平行啟動系統服務,按需啟動守護程序,支援系統狀態快照,或者基於依賴的服務控制邏輯。

先前的使用SysV初始化或Upstart的紅帽企業版Linux版本中,使用位於/etc/rc.d/init.d/目錄中的bash初始化指令碼進行管理。而在RHEL 7/CentOS 7中,這些啟動指令碼被服務單元取代了。服務單元以.service檔案擴充套件結束,提供了與初始化指令碼同樣的用途。要檢視、啟動、停止、重啟、啟用或者禁用系統服務,你要使用systemctl來代替舊的service命令。

注:為了向後相容,舊的service命令在CentOS 7中仍然可用,它會重定向所有命令到新的systemctl工具

使用systemctl來啟動/停止/重啟服務

要啟動一個服務,你需要使用如下命令:

  1. # systemctl start httpd.service

這會啟動httpd服務,就我們而言,Apache HTTP伺服器。

要停掉它,需要以root身份使用該命令:

  1. # systemctl stop httpd.service

要重啟,你可以使用restart選項,如果服務在執行中,它將重啟服務;如果服務不在執行中,它將會啟動。你也可以使用try-start選項,它只會在服務已經在執行中的時候重啟服務。同時,reload選項你也可以有,它會重新載入配置檔案。

  1. # systemctl restart httpd.service
  2. # systemctl try-restart httpd.service
  3. # systemctl reload httpd.service

我們例子中的命令看起來會像下面這樣:

systemctl start-stop-restart

檢查服務狀態

要檢查服務狀態,你可以使用status選項,看這裡:

  1. # systemctl status httpd.service

輸出結果就像這樣:

systemctl status

它會告訴你執行中的服務的方方面面。

使用啟用/禁用服務來控制開機啟動

你也可以使用enable/disable選項來控制一個服務是否開機啟動,命令如下:

  1. # systemctl enable httpd.service
  2. # systemctl disable httpd.service

輸出結果看這裡:

systemctl-enable

雖然在過去的幾年中,對systemd的採用飽受爭議,然而大多數主流發行版都已經逐漸採用或打算在下一個發行版中採用它。所以,它是一個有用的工具,我們需要好好熟悉它。