CentOS7中新增了unit(單元)的概念,它是所有資源的統稱。
unit總共分為:
- Service:系統服務
- Target:多個 Unit 構成的一個組
- Device:硬體裝置
- Mount:檔案系統的挂載點
- Automount:自動挂載點
- Path:檔案或路徑
- Scope:不是由 Systemd 啟動的外部程序
- Slice:程序組
- Snapshot:Systemd 快照,可以切回某個快照
- Socket:程序間通信的 socket
- Swap:swap 檔案
- Timer:定時器
Systemd由一個叫做單元(Unit)的概念,它儲存了服務、裝置、挂載點和作業系統其他資訊的配置檔案,并能夠處理不同單元之間的依賴關系。大部分單元都靜态的定義在單元檔案中,也有一些是動态生成的。單元有多種狀态:
- 處于活動的則是(active),目前正在運作
- 停止的則是(inactive),目前已經停止
- 啟動中的則是(activing),目前正在啟動
- 停止中的則是(deactiving),目前正在停止
- 失敗的則是(failed)狀态,意思說單元啟動過程中遇到錯誤比如找不到檔案、路徑或者程序運作中崩潰了等。
systemctl list-units
# 檢視目前系統的所有unit
systemctl list-units --type=service
# 檢視所有類型為service的unit
systemctl status
# 檢視目前系統中的unit狀态
systemctl status sshd.service
# 檢視指定的sshd.service的狀态
systemctl is-active sshd.service
# 檢視某個 Unit 是否正在運作
systemctl is-failed sshd.service
# 檢視某個 Unit 是否處于關閉狀态
systemctl is-enabled sshd.service
# 檢視某個 Unit 是否開啟了自啟動狀态
在舊版本的CentOS6中,對于RPM包安裝的服務的管理,主要是通過service指令和chkconfig指令來管理。如:
service network start|stop|status|restart|reload|force-reload
# 網絡服務的啟動|關閉|狀态|重新開機|重新加載配置檔案|強制重新加載配置檔案
chkconfig network on|off
# 開啟|關閉網絡服務的自啟動
在CentOS7中,對于RPM包安裝的服務的管理,可以采用systemctl指令來管理,同時,向下相容service指令和chkconfig指令。
systemctl start|stop|status|restart|reload|force-reload network
# 網絡服務的啟動|關閉|狀态|重新開機|重新加載配置檔案|強制重新加載配置檔案
systemctl enable|disable network
# 開啟|關閉網絡服務的自啟動
systemctl daemon-reload
# 重載所有修改過的配置檔案
每一個 unit 都有一個配置檔案,告訴 systemd 怎麼啟動這個 unit 。
systemd 預設從目錄/etc/systemd/system/讀取配置檔案。但是,裡面存放的大部分檔案都是符号連結,指向目錄/usr/lib/systemd/system/中的配置檔案,真正的配置檔案存放在/usr/lib/systemd/system/目錄中。
systemctl enable指令,用于在上面兩個目錄之間,建立符号連結。
systemctl disable指令,用于在上面兩個目錄之間,撤銷符号連結。
systemctl list-unit-files
# 列出所有unit的配置檔案
systemctl list-unit-files --type=service
# 列出所有服務的配置檔案
systemctl cat network.service
# 檢視network服務的配置檔案的内容
# 說明:末尾的.service可以省略,預設就是檢視服務類型的unit。