天天看點

【CentOS7中的unit(單元)概念】

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。

繼續閱讀