[Buildroot] [v2 3/4] package/redis: Add systemV init script

Martin Bark martin at barkynet.com
Thu Jul 23 11:20:28 UTC 2015


start-stop-daemon is used to start redis-server as user redis in the
background.  Once redis-server is running we use redis-cli to shutdown
cleanly.

Signed-off-by: Martin Bark <martin at barkynet.com>

---
Changes v1 -> v2
 - Change su - redis -c "/usr/bin/redis-cli shutdown" to just
   /usr/bin/redis-cli shutdown since redis users shell is now /bin/false.
   This is ok since redis-cli simply signals redis-server over a socket
   to shutdown.
---
 package/redis/S50redis | 38 ++++++++++++++++++++++++++++++++++++++
 package/redis/redis.mk |  5 +++++
 2 files changed, 43 insertions(+)
 create mode 100644 package/redis/S50redis

diff --git a/package/redis/S50redis b/package/redis/S50redis
new file mode 100644
index 0000000..c5751d7
--- /dev/null
+++ b/package/redis/S50redis
@@ -0,0 +1,38 @@
+#!/bin/sh
+#
+# start redis
+#
+
+start() {
+	echo -n "Starting redis: "
+	umask 077
+	start-stop-daemon -S -q -c redis:redis -b \
+		--exec /usr/bin/redis-server -- /etc/redis.conf
+	[ $? = 0 ] && echo "OK" || echo "FAIL"
+}
+stop() {
+	echo -n "Stopping redis: "
+	/usr/bin/redis-cli shutdown
+	[ $? = 0 ] && echo "OK" || echo "FAIL"
+}
+restart() {
+	stop
+	start
+}
+
+case "$1" in
+	start)
+		start
+		;;
+	stop)
+		stop
+		;;
+	restart|reload)
+		restart
+		;;
+	*)
+		echo "Usage: $0 {start|stop|restart}"
+		exit 1
+esac
+
+exit $?
diff --git a/package/redis/redis.mk b/package/redis/redis.mk
index 04c2d6a..8537fb2 100644
--- a/package/redis/redis.mk
+++ b/package/redis/redis.mk
@@ -30,4 +30,9 @@ define REDIS_INSTALL_TARGET_CMDS
 		$(TARGET_DIR)/etc/redis.conf
 endef
 
+define REDIS_INSTALL_INIT_SYSV
+	$(INSTALL) -m 0755 -D package/redis/S50redis \
+		$(TARGET_DIR)/etc/init.d/S50redis
+endef
+
 $(eval $(generic-package))
-- 
2.1.4




More information about the buildroot mailing list