做網(wǎng)站怎么掙錢賺錢職業(yè)培訓(xùn)機(jī)構(gòu)排名
配置文件目錄
linux 系統(tǒng)中有很多配置文件目錄
/etc/systemd/system
/lib/systemd/system?
/usr/lib/systemd/system 【結(jié)果就是這個(gè)目錄配置文件是源頭】
這三者有什么樣的關(guān)系呢?
以下是網(wǎng)絡(luò)上找的資料匯總,并加了一些操作驗(yàn)證。方便后期使用
介紹
目錄/lib/systemd/system 以及/usr/lib/systemd/system 其實(shí)指向的是同一目錄,在根目錄 / 目錄下執(zhí)行命令?ll
?,看下圖
[/usr]/lib/systemd/system/
?該目錄中包含的是軟件包安裝的單元
是說通過 yum、dnf、rpm 等軟件包管理命令管理的 systemd 單元文件,都放置在該目錄下。
[/usr]/lib/systemd/system/The expectation is that `/lib/systemd/system` is a directory that should only contain systemd unit files which were put there by the package manager (YUM/DNF/RPM/APT/etc).
/etc/systemd/system/(系統(tǒng)管理員安裝的單元, 優(yōu)先級(jí)更高)?
Files in /etc/systemd/system are manually placed here by the operator of the system for ad-hoc software installations that are not in the form of a package. This would include tarball type software installations or home grown scripts.
在一般的使用場(chǎng)景下,每一個(gè) Unit(服務(wù)等) 都有一個(gè)配置文件,告訴 Systemd 怎么啟動(dòng)這個(gè) Unit 。
Systemd 默認(rèn)從目錄/etc/systemd/system/
讀取配置文件。但是,里面存放的大部分文件都是符號(hào)鏈接,指向目錄/usr/lib/systemd/system/
,真正的配置文件存放在這個(gè)目錄。?systemctl enable
?命令用于在上面兩個(gè)目錄之間,建立符號(hào)鏈接關(guān)系。如下圖,我設(shè)置了Docker的開機(jī)啟動(dòng),然后就把/etc/systemd/system/multi-user.target.wants/docker.service 鏈接到 /usr/lib/sytemd/system/docker.service 文件。
與之對(duì)應(yīng)的,systemctl disable 命令用于在兩個(gè)目錄之間,撤銷符號(hào)鏈接關(guān)系,相當(dāng)于撤銷開機(jī)啟動(dòng)。
雖然在/etc/systemd/system/目錄下放置的是系統(tǒng)管理員安裝的單元,但是實(shí)際使用過程中,用戶可以自定義服務(wù)配置文件,并且放置在該目錄,將該服務(wù)的配置文件的優(yōu)先級(jí)提高。
優(yōu)先級(jí)
systemd 的使用大幅提高了系統(tǒng)服務(wù)的運(yùn)行效率, 而 unit 的文件位置一般主要有三個(gè)目錄:
Table 1. Load path when running in system mode (--system).┌────────────────────────┬─────────────────────────────┐│Path │ Description │├────────────────────────┼─────────────────────────────┤│/etc/systemd/system │ Local configuration │├────────────────────────┼─────────────────────────────┤│/run/systemd/system │ Runtime units │├────────────────────────┼─────────────────────────────┤│/lib/systemd/system │ Units of installed packages │└────────────────────────┴─────────────────────────────┘
這三個(gè)目錄的配置文件優(yōu)先級(jí)依次從高到低,如果同一選項(xiàng)三個(gè)地方都配置了,優(yōu)先級(jí)高的會(huì)覆蓋優(yōu)先級(jí)低的。
系統(tǒng)安裝時(shí),默認(rèn)會(huì)將 unit 文件放在/lib/systemd/system
目錄。如果我們想要修改系統(tǒng)默認(rèn)的配置,比如nginx.service
,一般有兩種方法:
- 在
/etc/systemd/system
目錄下創(chuàng)建nginx.service
文件,里面寫上我們自己的配置。 - 在
/etc/systemd/system
下面創(chuàng)建nginx.service.d
目錄,在這個(gè)目錄里面新建任何以.conf 結(jié)尾的文件,然后寫入我們自己的配置。推薦這種做法。
/run/systemd/system
這個(gè)目錄一般是進(jìn)程在運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建 unit 文件的目錄,一般很少修改,除非是修改程序運(yùn)行時(shí)的一些參數(shù)時(shí),即 Session 級(jí)別的,才在這里做修改。
附 systemd 介紹【CSDN】
服務(wù)設(shè)定位置:
- /usr/lib/systemd/system/
- /run/systemd/system/
- /etc/systemd/system/(一般為連接文件)
服務(wù)統(tǒng)一管理:systemd
service 設(shè)定文件:
- /usr/lib/systemd/system/*.service: 預(yù)設(shè)設(shè)定文件
- /etc/systemd/system/system/*.service.d/: 用戶個(gè)性化設(shè)定文件,會(huì)被加入設(shè)定
- /etc/systemd/system/system/*.service.wants/: 連結(jié)文件,啟動(dòng)該服務(wù)后推薦啟動(dòng)的其他服務(wù)
- /etc/systemd/system/system/*.service.requires/: 連結(jié)文件,啟動(dòng)該服務(wù)之前,需要預(yù)先啟動(dòng)的服務(wù)
- /run/systemd/generator.late 使用 systemd-sysv-generator 工具處理 SysV init 腳本(即:/etc/init.d/*),自動(dòng)生成.service 文件