Ubuntu 18.04 伺服器上的 mysql.service 位置?
我需要編輯
mysql.service
文件以使 MySQL 在崩潰時自動重啟。我正在使用大量庫存的 Ubuntu 18.04 伺服器安裝並遵循這些說明https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04庫存 MySQL 安裝。我擔心的是我不確定在哪裡編輯
mysql.service
。如果我這樣做:sudo updatedb locate mysql.service
我明白了:
/etc/systemd/system/multi-user.target.wants/mysql.service /lib/systemd/system/mysql.service /var/lib/lxcfs/cgroup/blkio/system.slice/mysql.service /var/lib/lxcfs/cgroup/cpu,cpuacct/system.slice/mysql.service /var/lib/lxcfs/cgroup/devices/system.slice/mysql.service /var/lib/lxcfs/cgroup/memory/system.slice/mysql.service /var/lib/lxcfs/cgroup/name=systemd/system.slice/mysql.service /var/lib/lxcfs/cgroup/pids/system.slice/mysql.service /var/lib/systemd/deb-systemd-helper-enabled/mysql.service.dsh-also /var/lib/systemd/deb-systemd-helper-enabled/multi-user.target.wants/mysql.service
這很奇怪,因為我習慣於 systemd
.service
文件位於/etc/systemd/system
. 由於路徑相似,我傾向於認為這/lib/systemd/system/mysql.service
可能是我應該編輯的文件。但是,如果有人可以提供有關以下內容的一些額外資訊,那就太好了:
- 是
/lib/systemd/system/mysql.service
我應該編輯的文件嗎?- 為什麼有這麼多
mysql.service
文件?這似乎會引起混亂。- 是什麼
multi-user.target.wants
?我mysql.service
也應該更改那裡的文件嗎?- 一些簡單的Google搜尋顯示它
lxcfs
是 Linux Containers 的縮寫,我應該更改其中的任何mysql.service
文件嗎?
/lib/systemd/system中的文件不應由管理員直接編輯,應保持原樣。這些文件屬於已安裝的軟體包,更新和/或更改可能會破壞事情。
要像文件一樣修改現有
systemd
文件和配置.service
,請systemd
提供*/etc/systemd/system路徑,該路徑會覆蓋**/lib/systemd/system*中的文件和設置。因此,如果您有
.service
如下兩個文件,/etc/systemd/system/mysql.service /lib/systemd/system/mysql.service
輸入命令時將使用位於*/etc/systemd/system/mysql.service*
systemctl [start|stop|enable|disable] mysql.service
的那個。此外,
systemd
提供插入式“.d”目錄,允許僅.service
在*/lib/systemd/system中更改或添加文件的單個選項。您可以使用.d*systemctl edit mysql.service
來創建這樣一個插入式目錄。 您需要輸入的只是部分(例如, , … )和您要更改的選項。 由於您要更改重新啟動行為,請執行 a並輸入以下行。[Service]``[Unit]
systemctl edit mysql.service
[Service] Restart=on-failure
這將創建一個文件夾
/etc/systemd/system/mysql.service.d
和覆蓋文件
/etc/systemd/system/mysql.service.d/override.conf
其中包含您之前輸入的行。您也可以手動創建文件和文件夾。
我更喜歡這種方法而不是複制整個
.service
文件,因為包更新會帶來變化,你只需要處理你改變的單個更改。無論如何,在使用
systemd
和更改配置文件時,必須輸入systemctl daemon-reload
啟動更改。
不要更改任何其他
lxcfs
相關的東西。這multi-user.target.wants
只是將要為目標systemd
啟動的服務組合在一起的一種組織方法。multi-user
Targets insystemd
替換了舊init 0 1 2 3 4 5 6
方法。一些雙重
mysql.service
文件將是指向您的實際.service
文件的符號連結。另請參閱以下手冊頁。
man systemctl man systemd.unit man systemd.service man systemd.target