1 votes

Redis ne parvient pas à démarrer sur OpenSuse Leap 42.1 après une mise à jour

J'ai décidé de mettre à niveau une machine fonctionnant en 13.2 vers la dernière version Leap 42.1. J'ai lancé le processus et la mise à niveau a été effectuée. Après le redémarrage, tout fonctionne sauf le service du serveur redis. Je ne peux pas démarrer le service redis en utilisant :

# service redis start

Le statut est :

# service redis status
redis.target - Redis target allowing to start/stop all redis@.service instances at once
   Loaded: loaded (/usr/lib/systemd/system/redis.target; static)
   Active: active since Fri 2015-11-20 03:47:07 EET; 1s ago

Bien qu'il soit indiqué qu'il est "actif", lorsque je vérifie si le processus est en cours d'exécution, il ne l'est pas :

# ps ax | grep -i redis
20892 pts/0    S+     0:00 grep -i redis

La seule façon de lancer le serveur redis est de le faire manuellement :

# redis-server /etc/redis/default.conf

qui démarre le serveur sans aucun problème.

J'ai essayé de réinstaller le paquet redis et j'ai essayé de changer le vendeur du référentiel "officiel" à "server:database". Aucune de ces tentatives ne semble résoudre le problème.

Mon default.conf est à peu près le modèle "par défaut" qui n'a que ces modifications :

daemonize yes #default is no
bind 127.0.0.1 1.2.3.4 #default is 127.0.0.1

Les dossiers de service :

/usr/lib/systemd/system/redis.target
[Unit]
Description=Redis target allowing to start/stop all redis@.service instances at once

/usr/lib/systemd/system/redis@.service
[Unit]
Description=Redis
After=network.target
PartOf=redis.target

[Service]
Type=simple
User=redis
Group=redis
PrivateTmp=true
PIDFile=/var/run/redis/%i.pid
ExecStart=/usr/sbin/redis-server /etc/redis/%i.conf
Restart=on-failure

#ExecStart=/usr/sbin/openvpn --daemon --suppress-timestamps --writepid /var/run/openvpn/%i.pid --cd /etc/openvpn/ --config %i.conf
#ExecReload=/sbin/killproc -p /var/run/openvpn/%i.pid -HUP /usr/sbin/openvpn

[Install]
WantedBy=multi-user.target redis.target

Une idée de ce qui a changé entre 13.2 et 42.1 et pourquoi le service a cessé de fonctionner ? De plus, je ne me souviens pas comment j'avais précédemment répertorié les redis dans le fichier chkconfig - après la mise à jour, c'est parti de là, bien que je ne sois pas sûr que ce soit une partie du problème.

Modifier : Voici le fichier journal grâce à @Michael Hampton :

9042:signal-handler (1448036091) Received SIGTERM scheduling shutdown...
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 3.0.4 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 9042
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

9042:M 20 Nov 18:14:51.090 # Server started, Redis version 3.0.4
9042:M 20 Nov 18:14:51.091 * DB loaded from disk: 0.000 seconds
9042:M 20 Nov 18:14:51.091 * The server is now ready to accept connections on port 6379
9042:M 20 Nov 18:14:51.091 # User requested shutdown...
9042:M 20 Nov 18:14:51.091 * Saving the final RDB snapshot before exiting.
9042:M 20 Nov 18:14:51.126 * DB saved on disk
9042:M 20 Nov 18:14:51.126 * Removing the pid file.
9042:M 20 Nov 18:14:51.126 # Redis is now ready to exit, bye bye...

Je ne sais pas pourquoi il décide de s'arrêter spontanément en raison d'un "arrêt demandé par l'utilisateur".

3voto

Michael Hampton Points 232226

Il s'agit d'une unité systemd qui est capable d'instancier plusieurs copies d'un serveur avec différentes configurations.

Pour l'utiliser, spécifiez le nom de l'instance que vous voulez utiliser. Par exemple, votre configuration existante semble avoir pour nom default :

systemctl enable redis@default
systemctl start redis@default

Vous devrez probablement modifier le /etc/redis/default.conf afin qu'il écrive le pidfile dans l'emplacement attendu par systemd.

pidfile /var/run/redis/default.pid

1voto

JRR Points 11

Après avoir cherché pendant un certain temps, j'ai découvert qu'il fallait mettre en commentaire le fichier daemonize yes ou le régler sur no . Le plus drôle, c'est que j'avais la même configuration sur la 13.2 et qu'elle fonctionnait sans aucun problème.

J'espère que cela vous aidera.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X