Source: redis Version: 2:3.0.3-1 Severity: normal Tags: patch
Both redis-server and redis-sentinel use the the same `RuntimeDirectory` (/run/redis). This is wrong since systemd removes RuntimeDirectory on service stop. So, stopping for example redis-server removes redis-sentinel.pid as well. Using a systemd-tempfile is a more robust approach. We are also removing ExecStartPre lines since directory creation is handled in a different level. I am including a patch on top of the packaging repo for reference, and I am also creating a Pull Request on github.
>From e206191a03a315c6a29af4e35103796f5a991f9f Mon Sep 17 00:00:00 2001 From: Christos Trochalakis <[email protected]> Date: Mon, 20 Jul 2015 14:37:45 +0300 Subject: [PATCH] Switch from RuntimeDirectory to systemd-tempfiles Both redis-server and redis-sentinel use the the same `RuntimeDirectory` (/run/redis). This is wrong since systemd removes RuntimeDirectory on service stop. So, stopping redis-server removes redis-sentinel.pid as well. Using a systemd-tempfile is a more robust approach. We are also removing ExecStartPre lines since directory creation is handled in a different level. --- debian/redis-sentinel.service | 4 ---- debian/redis-server.service | 4 ---- debian/redis-server.tmpfile | 1 + 3 files changed, 1 insertion(+), 8 deletions(-) create mode 100644 debian/redis-server.tmpfile diff --git a/debian/redis-sentinel.service b/debian/redis-sentinel.service index d425cab..26c9a1a 100644 --- a/debian/redis-sentinel.service +++ b/debian/redis-sentinel.service @@ -4,13 +4,9 @@ After=network.target [Service] Type=forking -PermissionsStartOnly=true -ExecStartPre=-/bin/mkdir /var/run/redis -ExecStartPre=/bin/chown redis:redis /var/run/redis ExecStart=/usr/bin/redis-sentinel /etc/redis/sentinel.conf ExecStop=/usr/bin/redis-cli -p 26379 shutdown Restart=always -RuntimeDirectory=redis User=redis Group=redis diff --git a/debian/redis-server.service b/debian/redis-server.service index bbeaf76..62c2074 100644 --- a/debian/redis-server.service +++ b/debian/redis-server.service @@ -4,13 +4,9 @@ After=network.target [Service] Type=forking -PermissionsStartOnly=true -ExecStartPre=-/bin/mkdir /var/run/redis -ExecStartPre=/bin/chown redis:redis /var/run/redis ExecStart=/usr/bin/redis-server /etc/redis/redis.conf ExecStop=/usr/bin/redis-cli shutdown Restart=always -RuntimeDirectory=redis User=redis Group=redis diff --git a/debian/redis-server.tmpfile b/debian/redis-server.tmpfile new file mode 100644 index 0000000..740e1ae --- /dev/null +++ b/debian/redis-server.tmpfile @@ -0,0 +1 @@ +d /run/redis 2775 redis redis - -- 2.1.4

