Nextcloudを導入する際、Redis-Serverを組み込むところを行いました。
その中に気になるメッセージがあったので対処します。
Starting Advanced key-value store...
redis-server.service: Can't open PID file /run/redis/redis-server.pid (yet?) after s>
Started Advanced key-value store.
手順1. IPv6無効化
参考にしたURL:
https://ubuntu.perlzemi.com/blog/20200225174004.html
1-1.設定ファイルのバックアップを取ります。
- ディレクトリ移動
cd /etc/redis && pwd
- 設定ファイルバックアップ
sudo cp -pi redis.conf /path/go/backup/directory/redis.conf.$(date +%Y%m%d)
任意のバックアップディレクトリを指定します。
- バックアップ確認
diff -u redis.conf /path/go/backup/directory/redis.conf.$(date +%Y%m%d)
差分がなければ(エラーがなければ)バックアップ完了です。
1-2. 設定ファイルを編集します。
- ファイル編集
次のファイルを、以下の差分になるように編集します。
/etc/redis/redis.conf
- 差分
-bind 127.0.0.1 ::1
+bind 127.0.0.1
手順2. 起動スクリプトの編集
参考URL:
https://github.com/redis/redis/issues/7361
2-1.設定ファイルのバックアップを取ります。
- ディレクトリ移動
cd /etc/systemd/system && pwd
- 設定ファイルバックアップ
sudo cp -pi /etc/systemd/system/redis.service /path/to/backup/directory/redis.service.$(date +%Y%m%d)
任意のバックアップディレクトリを指定します。
- バックアップ確認
diff -u /etc/systemd/system/redis.service /path/to/backup/directory/redis.service.$(date +%Y%m%d)
差分がなければ(エラーがなければ)バックアップ完了です。
2-2.設定ファイルを編集します。
次のファイルを、以下の差分になるように編集します。
/etc/systemd/system/redis.service
-PIDFile=/run/redis/redis-server.pid
+#PIDFile=/run/redis/redis-server.pid
+ExecStop=/bin/kill -s TERM $MAINPID
+ExecStartPost=/bin/sh -c "echo $MAINPID > /var/run/redis/redis.pid"
2-3. 設定ファイルを反映させます。
sudo systemctl daemon-reload
3. 修正を確認します。
- redis-serverサービス再起動
sudo systemctl restart redis-server.service
- 設定反映確認
systemctl status redis-server.service
次のように、PIDが作られていれば設定完了です。
Process: 531 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)
Process: 653 ExecStartPost=/bin/sh -c echo $MAINPID > /var/run/redis/redis.pid (code=exited, status=0/SUCCESS)
Main PID: 652 (redis-server)
Tasks: 4 (limit: 4671)
Memory: 4.4M
CGroup: /system.slice/redis-server.service
└─652 /usr/bin/redis-server 127.0.0.1:6379