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
行が消えますか?このマシンにアクセスできるのは私だけです。このファイルは場合によっては自動的に上書きされますか?無効にできますか?
パッケージに同梱されているsystemdサービスファイルを編集するためのものではありません。これらはいつでも交換できます。パッケージが更新されたとき。
代わりに、必要な変更を含むオーバーライドファイルを作成する必要があります。これらは、更新されるシステムパッケージの一部ではないため、保持されます。
これを行う簡単な方法は、systemctl edit redis
を実行することです。これにより、オーバーライドドロップインファイル/etc/systemd/system/redis.service.d/override.conf
が作成されます。このファイルに変更(および適切なセクション)を配置できます。
[Service]
ReadWriteDirectories=-/my/custom/data/dir
そのディレクトリを作成し、.conf
で終わるファイルを手動で配置することもできます。ただし、サービスを無効にするため、ディレクトリを空のままにしないでください。
どちらの場合も、systemctl daemon-reload
を実行すると、サービスを再起動する準備が整います。