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