From: Ian Jackson Date: Sun, 9 Apr 2017 01:31:40 +0000 (+0100) Subject: start daemon in init script X-Git-Tag: hippotat/1.0.0~55^2~70 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=hippotat.git;a=commitdiff_plain;h=6a1ac5de7fdccba52030e373c613b7a6c3cfe65c start daemon in init script Signed-off-by: Ian Jackson --- diff --git a/debian/hippotat.init b/debian/hippotat.init new file mode 100644 index 0000000..38fffb7 --- /dev/null +++ b/debian/hippotat.init @@ -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