minidlna: add init script for sysv and systemd
authorAurélien Chabot <aurelien@chabot.fr>
Mon, 23 Feb 2015 23:39:22 +0000 (00:39 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 8 Mar 2015 13:32:31 +0000 (14:32 +0100)
[Thomas: add a sleep 1 between stop and start, otherwise minidlnad
does not restart properly.]

Signed-off-by: Aurélien Chabot <aurelien@chabot.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/minidlna/S60minidlnad [new file with mode: 0644]
package/minidlna/minidlna.mk
package/minidlna/minidlnad.service [new file with mode: 0644]

diff --git a/package/minidlna/S60minidlnad b/package/minidlna/S60minidlnad
new file mode 100644 (file)
index 0000000..f99999a
--- /dev/null
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+# minidlnad        Starts minidlnad.
+#
+
+start() {
+       echo -n "Starting minidlna: "
+       umask 077
+       start-stop-daemon -S -q -p /var/run/minidlna/minidlna.pid \
+               --exec /usr/sbin/minidlnad
+       [ $? = 0 ] && echo "OK" || echo "FAIL"
+}
+stop() {
+       echo -n "Stopping minidlna: "
+       start-stop-daemon -K -q -p /var/run/minidlna/minidlna.pid
+       [ $? = 0 ] && echo "OK" || echo "FAIL"
+}
+restart() {
+       stop
+       # Sleep needed for minidlna to restart properly
+       sleep 1
+       start
+}
+
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  restart|reload)
+       restart
+       ;;
+  *)
+       echo "Usage: $0 {start|stop|restart}"
+       exit 1
+esac
+
+exit $?
index bcbe5fa2158c737e89851fb9faad4455046444f8..1ff76e39459e16d72f7468e226e633ff7d2ab4f9 100644 (file)
@@ -24,4 +24,19 @@ MINIDLNA_CONF_OPTS = \
        --disable-static
 endif
 
+define MINIDLNA_INSTALL_INIT_SYSV
+       $(INSTALL) -D -m 0755 package/minidlna/S60minidlnad \
+               $(TARGET_DIR)/etc/init.d/S60minidlnad
+endef
+
+define MINIDLNA_INSTALL_INIT_SYSTEMD
+       $(INSTALL) -D -m 0755 package/minidlna/minidlnad.service \
+               $(TARGET_DIR)/lib/systemd/system/minidlnad.service
+
+       mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
+
+       ln -fs ../minidlnad.service \
+               $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/minidlnad.service
+endef
+
 $(eval $(autotools-package))
diff --git a/package/minidlna/minidlnad.service b/package/minidlna/minidlnad.service
new file mode 100644 (file)
index 0000000..f69476b
--- /dev/null
@@ -0,0 +1,11 @@
+[Unit]
+Description=minidlna server
+After=network.target
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/minidlnad
+PIDFile=/var/run/minidlna/minidlna.pid
+
+[Install]
+WantedBy=multi-user.target