Subject: redis-server does not start if /var/run/redis does not exist
Package: redis-server
Version: 2:3.2.5-1~dotdeb+8.1
Severity: normal
Dear Maintainer,
redis-server does not start if /var/run/redis does not exist
>From my understanding of the systemd directory, this can be fixed by
adding a RuntimeDirectory to the servicefile
>From the docs:
System daemons frequently require private runtime directories below
/run to place communication sockets and similar in. For these,
consider declaring them in their unit files using RuntimeDirectory=
(see systemd.exec(5) for details), if this is feasible.
So I believe adding RuntimeDirectory=redis to the
"/lib/systemd/system/redis-server.service" file in the package will
prevent this issue
Reproducible steps:
root@debian-redis-test:~# apt-get install redis-server --reinstall
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libjemalloc1
Use 'apt-get autoremove' to remove it.
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 27 not upgraded.
Need to get 0 B/509 kB of archives.
After this operation, 0 B of additional disk space will be used.
(Reading database ... 44319 files and directories currently installed.)
Preparing to unpack .../redis-server_2%3a3.2.5-1~dotdeb+8.1_amd64.deb ...
Unpacking redis-server (2:3.2.5-1~dotdeb+8.1) over (2:3.2.5-1~dotdeb+8.1) ...
Processing triggers for systemd (215-17+deb8u5) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up redis-server (2:3.2.5-1~dotdeb+8.1) ...
root@debian-redis-test:~# systemctl status redis-server
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled)
Active: active (running) since Wed 2016-11-30 14:24:32 UTC; 1s ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Process: 6253 ExecStartPost=/bin/run-parts --verbose
/etc/redis/redis-server.post-up.d (code=exited, status=0/SUCCESS)
Process: 6250 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
(code=exited, status=0/SUCCESS)
Process: 6247 ExecStartPre=/bin/run-parts --verbose
/etc/redis/redis-server.pre-up.d (code=exited, status=0/SUCCESS)
Main PID: 6252 (redis-server)
CGroup: /system.slice/redis-server.service
└─6252 /usr/bin/redis-server 127.0.0.1:6379
Nov 30 14:24:32 debian-redis-test run-parts[6247]: run-parts:
executing /etc/redis/redis-server.pre-up.d/00_example
Nov 30 14:24:32 debian-redis-test run-parts[6253]: run-parts:
executing /etc/redis/redis-server.post-up.d/00_example
Nov 30 14:24:32 debian-redis-test systemd[1]: Started Advanced key-value store.
root@debian-redis-test:~# systemctl stop redis-server
root@debian-redis-test:~# rm -rf /var/run/redis/
root@debian-redis-test:~# systemctl start redis-server
Job for redis-server.service failed. See 'systemctl status
redis-server.service' and 'journalctl -xn' for details.
root@debian-redis-test:~# journalctl -u redis-server --no-pager | grep pid
Nov 30 13:29:04 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
Nov 30 13:30:34 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
Nov 30 13:32:30 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
Nov 30 13:32:31 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
Nov 30 13:32:31 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
Nov 30 13:32:31 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
Nov 30 13:32:31 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
Nov 30 14:05:02 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
Nov 30 14:05:03 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
Nov 30 14:05:03 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
Nov 30 14:05:03 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
Nov 30 14:05:03 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
Nov 30 14:24:54 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
Nov 30 14:24:54 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
Nov 30 14:24:54 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
Nov 30 14:24:55 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
Nov 30 14:24:55 debian-redis-test systemd[1]: PID file
/var/run/redis/redis-server.pid not readable (yet?) after start-post.
# Add RuntimeDirectory config setting to the service file with vim,
works fine afterward
root@debian-redis-test:~# cat /lib/systemd/system/redis-server.service
| grep Runtime
RuntimeDirectory=redis
root@debian-redis-test:~# systemctl daemon-reload
root@debian-redis-test:~# systemctl stop redis-server
root@debian-redis-test:~# rm -rf /var/run/redis/
root@debian-redis-test:~# systemctl start redis-server
root@debian-redis-test:~# systemctl status redis-server
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled)
Active: active (running) since Wed 2016-11-30 14:34:03 UTC; 11s ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Process: 6725 ExecStopPost=/bin/run-parts --verbose
/etc/redis/redis-server.post-down.d (code=exited, status=0/SUCCESS)
Process: 6722 ExecStop=/bin/kill -s TERM $MAINPID (code=exited,
status=0/SUCCESS)
Process: 6719 ExecStop=/bin/run-parts --verbose
/etc/redis/redis-server.pre-down.d (code=exited, status=0/SUCCESS)
Process: 6743 ExecStartPost=/bin/run-parts --verbose
/etc/redis/redis-server.post-up.d (code=exited, status=0/SUCCESS)
Process: 6739 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
(code=exited, status=0/SUCCESS)
Process: 6737 ExecStartPre=/bin/run-parts --verbose
/etc/redis/redis-server.pre-up.d (code=exited, status=0/SUCCESS)
Main PID: 6742 (redis-server)
CGroup: /system.slice/redis-server.service
└─6742 /usr/bin/redis-server 127.0.0.1:6379
Nov 30 14:34:03 debian-redis-test run-parts[6737]: run-parts:
executing /etc/redis/redis-server.pre-up.d/00_example
Nov 30 14:34:03 debian-redis-test run-parts[6743]: run-parts:
executing /etc/redis/redis-server.post-up.d/00_example
Nov 30 14:34:03 debian-redis-test systemd[1]: Started Advanced key-value store.
-- System Information:
Debian Release: 8.6
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 3.16.0-4-amd64 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages redis-server depends on:
ii adduser 3.113+nmu3
ii init-system-helpers 1.22
ii libc6 2.19-18+deb8u6
ii lsb-base 4.1+Debian13+nmu1
ii redis-tools 2:3.2.5-1~dotdeb+8.1
redis-server recommends no packages.
redis-server suggests no packages.
-- Configuration Files:
/etc/redis/redis.conf changed [not included]
/etc/redis/sentinel.conf 63a2164b93c2205a1c8f349f6d27be0f [Errno 2] No
such file or directory: u'/etc/redis/sentinel.conf
63a2164b93c2205a1c8f349f6d27be0f'
-- no debconf information