package/rng-tools: add SysV init script
authorBenoît Thébaudeau <benoit@wsystem.com>
Tue, 13 Oct 2015 10:26:40 +0000 (12:26 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 13 Oct 2015 20:59:25 +0000 (22:59 +0200)
[Thomas: minor adjustments to make the script look more like our
standard init scripts.]

Signed-off-by: Benoît Thébaudeau <benoit@wsystem.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/rng-tools/S21rngd [new file with mode: 0755]
package/rng-tools/rng-tools.mk

diff --git a/package/rng-tools/S21rngd b/package/rng-tools/S21rngd
new file mode 100755 (executable)
index 0000000..b38be5a
--- /dev/null
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+NAME="rngd"
+DAEMON="/usr/sbin/${NAME}"
+DAEMON_ARGS=""
+CFG_FILE="/etc/default/${NAME}"
+PID_FILE="/var/run/${NAME}.pid"
+
+# Read configuration variable file if it is present
+[ -r "${CFG_FILE}" ] && . "${CFG_FILE}"
+
+start()
+{
+       printf "Starting ${NAME}: "
+       start-stop-daemon -S -q -x "${DAEMON}" -- ${DAEMON_ARGS}
+       [ $? = 0 ] && echo "OK" || echo "FAIL"
+}
+
+stop()
+{
+       printf "Stopping ${NAME}: "
+       # This daemon does not exit properly with the default TERM signal unless
+       # it's forced to work by something reading /dev/random. Killing it and
+       # removing its PID file is more straightforward.
+       if start-stop-daemon -K -q -s KILL -p "${PID_FILE}" -n "${NAME}"; then
+               rm -f "${PID_FILE}"
+               echo "OK"
+       else
+               echo "FAIL"
+       fi
+}
+
+case "$1" in
+       start)
+               start
+               ;;
+       stop)
+               stop
+               ;;
+       restart|reload)
+               stop
+               start
+               ;;
+       *)
+               echo "Usage: $0 {start|stop|restart|reload}" >&2
+               exit 1
+               ;;
+esac
index 7e975e048e291eca7826237290a2507d512d8d02..cc07bdf15c425bff030019558fb9e8104cde3d19 100644 (file)
@@ -22,6 +22,11 @@ else
 RNG_TOOLS_CONF_OPTS += --without-libgcrypt
 endif
 
+define RNG_TOOLS_INSTALL_INIT_SYSV
+       $(INSTALL) -D -m 755 package/rng-tools/S21rngd \
+               $(TARGET_DIR)/etc/init.d/S21rngd
+endef
+
 define RNG_TOOLS_INSTALL_INIT_SYSTEMD
        $(INSTALL) -D -m 644 package/rng-tools/rngd.service \
                $(TARGET_DIR)/usr/lib/systemd/system/rngd.service