0

I decided to upgrade a machine running 13.2 to the latest Leap 42.1. I started the process and it did the upgrade. After the reboot everything is working except for the redis server service. I can't start the redis service using:

# service redis start

The status is:

# 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

Although it says it's "active", when I check if the process is running it's actually not:

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

The only way I can start the redis server is by manually running:

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

which starts the server without any problems.

I've tried to reinstall the redis package and tried to change the vendor from the "official" to "server:database" repository. None of these seem to be fixing the issue.

My default.conf file is pretty much the "default" template which only has these changed:

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

The service files:

/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

Any ideas what has changed from 13.2 to 42.1 and why has the service stopped working? Also I don't seem to recall how I previously had the redis listed in chkconfig - after the upgrade it's gone from there, although I'm not quite sure that's part of the problem.

Edit: Here is the log file thanks to @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...

I'm not sure why it decides to spontaneously just quit due to "user requested shutdown".

  • What do the logs say? – womble Nov 20 '15 at 2:16
  • Unfortunately there's nothing in the logs. Neither in /var/log/messages nor in /var/log/redis/. The redis log dir is completely empty. It only creates a log file if I run the start up command manually. Am I looking in the wrong place? If you'd like I could post the full redis config but it's rather long. – tftd Nov 20 '15 at 2:25
  • You're running systemd, so you probably want to go grovel around in its database of log data. – womble Nov 20 '15 at 2:40
2

This is a systemd unit which is capable of instantiating multiple copies of a server with different configurations.

To use it, specify the name of the instance you want to use. For instance, your existing configuration seems to have the name default:

systemctl enable redis@default
systemctl start redis@default

You will probably have to change the /etc/redis/default.conf so that it writes the pidfile in the location that systemd expects.

pidfile /var/run/redis/default.pid
  • Thank you very much! This pointed me to the right direction! Now the log file is being created. I've updated my answer with the log. – tftd Nov 20 '15 at 16:20
1

After searching for a while I found out that need to comment out the daemonize yes or set it to no. The funny part is I had the same configuration on 13.2 and it worked without any problems.

Anyway hope this helps anybody.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.