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