天天看點

Linux Systemd——在RHEL/CentOS 7中啟動/停止/重新開機服務Linux Systemd——在RHEL/CentOS 7中啟動/停止/重新開機服務

Linux Systemd——在RHEL/CentOS 7中啟動/停止/重新開機服務Linux Systemd——在RHEL/CentOS 7中啟動/停止/重新開機服務

rhel/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工具。

<a target="_blank"></a>

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

# systemctl start httpd.service

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

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

# systemctl stop httpd.service

要重新開機,你可以使用restart選項,如果服務在運作中,它将重新開機服務;如果服務不在運作中,它将會啟動。你也可以使用try-start選項,它隻會在服務已經在運作中的時候重新開機服務。同時,reload選項你也可以有,它會重新加載配置檔案。

# systemctl restart httpd.service

# systemctl try-restart httpd.service

# systemctl reload httpd.service

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

Linux Systemd——在RHEL/CentOS 7中啟動/停止/重新開機服務Linux Systemd——在RHEL/CentOS 7中啟動/停止/重新開機服務

systemctl start-stop-restart

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

# systemctl status httpd.service

輸出結果就像這樣:

Linux Systemd——在RHEL/CentOS 7中啟動/停止/重新開機服務Linux Systemd——在RHEL/CentOS 7中啟動/停止/重新開機服務

systemctl status

它會告訴你運作中的服務的方方面面。

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

# systemctl enable httpd.service

# systemctl disable httpd.service

輸出結果看這裡:

Linux Systemd——在RHEL/CentOS 7中啟動/停止/重新開機服務Linux Systemd——在RHEL/CentOS 7中啟動/停止/重新開機服務

systemctl-enable

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

原文釋出時間:2014-08-29

本文來自雲栖合作夥伴“linux中國”