CentOS8中systemd配置檔案說明

獵手家園發表於2021-06-10

1、systemd配置資料夾
systemd配置檔案存在於以下三個資料夾中:

/etc/systemd/system     #存放系統啟動的預設級別及啟動的unit的軟連線,優先順序最高。
/run/systemd/system     #系統執行過程中產生的服務指令碼,優先順序次之。
/usr/lib/systemd/system #存放系統上所有的啟動檔案。優先順序最低

 

2、unit分類
unit的定義檔案可以根據其字尾名稱識別其定義的型別,可以使用systemctl -t help 檢視。

.servicre #定義了系統服務的啟動
.target   #定義了系統啟動的級別標籤,systemd 沒有執行級別的概念,建立標籤只是為了相容老版本。
.socket   #定義了程式通訊用到的套接字,套接字與程式是分離的
.device   #定義了系統啟動時核心識別的檔案,systemd提供了裝置的管理功能,/dev 下的裝置由/etc/udev/下的配置檔案與.device共同定製
.mount    #定義了系統的檔案系統的掛載點
.snapshop #系統快照
.swap     #用於標識swap裝置
.automount#檔案系統的自動掛載點
.path     #用於定義檔案系統中的一個檔案或目錄使用。常用於檔案系統發生變化時,延遲啟用服務。

 

3、service檔案組成:
(1)service檔案三部分

[Unit]
...
[service]
...
[install]
...

 

(2)Unit單元
[Unit] :不屬於第二個標籤的定義都放在這裡,或存放不屬於unit型別的定義,描述資訊,依賴的unit

Description:描述資訊
After:表明需要依賴的服務,作用決定啟動順序
Before:表明被依賴的服務
Requles:依賴到的其他unit ,強依賴,即依賴的unit啟動失敗。該unit不啟動。
Wants:依賴到的其他unit,弱依賴,即依賴的unit 啟動失敗。該unit繼續啟動
Conflicts:定義衝突關係

 

(3)service單元
[Service]:

Type:啟動時關係的定義,
simple:exec啟動的程式就是主程式。
forking :exec 啟動的程式生成的其中一個子程式成為主程式,啟動完成後,舊的主程式會退出。
ontshot:啟動下一個程式前主程式退出。
dbus:
notify:
ldle:
PIDFile=/var/run/sshd.pid
EnvironmentFile 需要使用到的變數的定義檔案
ExecStart= 啟動 unit需要執行的命令
ExecStartpre:
ExecStartpost:
ExecStop=停止unit需要執行的命令
Restart:
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

 

(4)install單元
[install]:服務啟動或禁用時的一些選項

Alias:
RequlredBy: 被那些unit所依賴,
WanteBy:被那些unit所依賴

 

4、配置過載
修改了的unit檔案需要過載,使用如下命令

#systemctl daemon-reload

 

相關文章