chiark / gitweb /
start daemon in init script
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 9 Apr 2017 01:31:40 +0000 (02:31 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 9 Apr 2017 01:31:40 +0000 (02:31 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
debian/hippotat.init [new file with mode: 0644]

diff --git a/debian/hippotat.init b/debian/hippotat.init
new file mode 100644 (file)
index 0000000..38fffb7
--- /dev/null
@@ -0,0 +1,83 @@
+#!/bin/sh
+
+### BEGIN INIT INFO
+# Provides:            hippotatd
+# Required-Start:      $syslog $network userv
+# Required-Stop:       $syslog $network
+# Default-Start:       2 3 4 5
+# Default-Stop:                0 1 6
+# Short-Description:   hippotatd
+# Description:          Asinine IP over HTTP server
+### END INIT INFO
+
+DAEMON=/usr/sbin/hippotat
+MASTER_CONFIG=/etc/hippotat/master.cfg
+USER=Debian-hippotat
+PIDFILE=/var/run/hippotat/hippotatd.pid
+LOGFACILITY=daemon
+# HIPPOTATD_ARGS
+
+. /etc/default/hippotatd
+
+test -f $DAEMON || exit 0
+egrep '^[^     #]' $MASTER_CONFIG >/dev/null || exit 0
+
+. /lib/lsb/init-functions
+
+ssd () {
+       set +e
+       start-stop-daemon --start --quiet --user $USER --pidfile=$PIDFILE "$@"
+       rc=$?
+       set -e
+}
+ensure_dirs () {
+       pidfiledir=${PIDFILE%/*}
+       if test -d ${pidfiledir}; then return; fi
+       mkdir -m 755 $pidfiledir
+       chown $USER $pidfiledir
+}
+
+do_start () {
+       ensure_dirs
+       ssd     --chuid $USER --startas \
+               $DAEMON --daemon --pidfile=$PIDFILE \
+               --syslog-facility=$LOGFACILITY $HIPPOTATD_ARGS
+}
+do_stop () {
+       ssd     --stop --retry 5
+}
+
+case "$1" in
+start)
+       log_daemon_msg "Starting IP over HTTP server" hippotatd
+       do_start
+       log_end_msg $rc
+       ;;
+
+stop)
+       log_daemon_msg "Stopping IP over HTTP server" hippotatd
+       do_stop
+       log_end_msg $rc
+       ;;
+
+restart|force-reload)
+       log_daemon_msg "Restarting IP over HTTP server" hippotatd
+       do_stop
+       sleep 1
+       do_start
+       log_end_msg $rc
+       ;;
+
+reload)
+       log_failure_msg "Cannot reload hippotat - need restart"
+       exit 1
+       ;;
+
+*)
+       echo >&2 "$0: unknown action $1"
+       exit 1
+       ;;
+
+esac
+
+exit 0