web-dev-qa-db-ja.com

カスタムデータディレクトリのRedis:systemd構成ファイルが自動的に変更されましたか?

RBDファイルのカスタムデータディレクトリを使用してUbuntu 18.04.1 LTSでRedis 4.0.9を実行しています。

これを機能させるには、_redis.conf_のdirを新しい場所に更新するだけでなく、_/etc/systemd/system/redis.service_も更新して設定する必要がありました。

_ReadWriteDirectories=-/my/custom/data/dir_

(ここで説明されています: https://stackoverflow.com/questions/44814351/failed-opening-the-rdb-file-read-only-file-system

突然、ある日まで、ReadWriteDirectoriesが新しいデータディレクトリに設定されていないかのように、Redisが再びFailed opening the RDB file backup.rdb (in server root dir /var/lib/redis) for saving: Read-only file systemエラーを出し始めるまで、すべてが正常に機能していました。

私は_/etc/systemd/system/redis.service_を確認しましたが、追加したReadWriteDirectoriesエントリは確かになくなっていました。私はそれを再び追加し、再起動後、Redisは再び正常に動作し、データを保存できます。

私の質問は次のとおりです。どうすれば_/etc/systemd/system/redis.service_が変更され、ReadWriteDirectories行が消えますか?このマシンにアクセスできるのは私だけです。このファイルは場合によっては自動的に上書きされますか?無効にできますか?

4
Andrei O

パッケージに同梱されているsystemdサービスファイルを編集するためのものではありません。これらはいつでも交換できます。パッケージが更新されたとき。

代わりに、必要な変更を含むオーバーライドファイルを作成する必要があります。これらは、更新されるシステムパッケージの一部ではないため、保持されます。

これを行う簡単な方法は、systemctl edit redisを実行することです。これにより、オーバーライドドロップインファイル/etc/systemd/system/redis.service.d/override.confが作成されます。このファイルに変更(および適切なセクション)を配置できます。

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

そのディレクトリを作成し、.confで終わるファイルを手動で配置することもできます。ただし、サービスを無効にするため、ディレクトリを空のままにしないでください。

どちらの場合も、systemctl daemon-reloadを実行すると、サービスを再起動する準備が整います。

6
Michael Hampton