Ubuntu

具有自定義數據目錄的 Redis:systemd 配置文件自動更改?

  • December 15, 2021

我在 Ubuntu 18.04.1 LTS 上使用 RBD 文件的自定義數據目錄執行 Redis 4.0.9。

為了完成這項工作,除了將dirin更新redis.conf到新位置之外,我還必須更新/etc/systemd/system/redis.service和設置:

ReadWriteDirectories=-/my/custom/data/dir

(如此處所述:https ://stackoverflow.com/questions/44814351/failed-opening-the-rdb-file-read-only-file-system )

一切正常,直到有一天 Redis 突然Failed opening the RDB file backup.rdb (in server root dir /var/lib/redis) for saving: Read-only file system又開始報錯,好像ReadWriteDirectories沒有設置到新的數據目錄一樣。

我檢查了一下/etc/systemd/system/redis.service,我添加的ReadWriteDirectories條目確實消失了。我將其添加回來,重新啟動後,Redis 再次正常工作並且可以保存數據。

我的問題是:怎麼會/etc/systemd/system/redis.service改變,我的ReadWriteDirectories線會消失?我是唯一可以使用這台機器的人。在某些情況下,此文件是否會自動覆蓋?我可以禁用它嗎?

您不打算編輯隨軟體包一起提供的 systemd 服務文件。這些可以隨時更換,例如在更新包時。

相反,您應該創建包含您想要進行的更改的覆蓋文件。這些將被保留,因為它們不是更新的系統包的一部分。

執行此操作的簡單方法是執行systemctl edit redis. 這將創建一個覆蓋插入文件/etc/systemd/system/redis.service.d/override.conf,您可以在其中放置更改(以及適當的部分):

[Service]
ReadWriteDirectories=-/my/custom/data/dir

您也可以.conf手動創建該目錄並放置以該目錄結尾的文件。但不要將目錄留空,因為這將禁用該服務。

在任何一種情況下,執行systemctl daemon-reload並準備好重新啟動服務。

引用自:https://serverfault.com/questions/943284