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

Reply via email to