init script fixes
[hippotat] / debian / hippotat.init
CommitLineData
6a1ac5de
IJ
1#!/bin/sh
2
3### BEGIN INIT INFO
4# Provides: hippotatd
5# Required-Start: $syslog $network userv
6# Required-Stop: $syslog $network
7# Default-Start: 2 3 4 5
8# Default-Stop: 0 1 6
9# Short-Description: hippotatd
10# Description: Asinine IP over HTTP server
11### END INIT INFO
12
13DAEMON=/usr/sbin/hippotat
14MASTER_CONFIG=/etc/hippotat/master.cfg
15USER=Debian-hippotat
16PIDFILE=/var/run/hippotat/hippotatd.pid
17LOGFACILITY=daemon
18# HIPPOTATD_ARGS
19
20. /etc/default/hippotatd
21
22test -f $DAEMON || exit 0
477169b1 23egrep '^[^ #]' $MASTER_CONFIG >/dev/null 2>&1 || exit 0
6a1ac5de
IJ
24
25. /lib/lsb/init-functions
26
27ssd () {
28 set +e
29 start-stop-daemon --start --quiet --user $USER --pidfile=$PIDFILE "$@"
30 rc=$?
31 set -e
32}
33ensure_dirs () {
34 pidfiledir=${PIDFILE%/*}
35 if test -d ${pidfiledir}; then return; fi
36 mkdir -m 755 $pidfiledir
37 chown $USER $pidfiledir
38}
39
40do_start () {
41 ensure_dirs
42 ssd --chuid $USER --startas \
43 $DAEMON --daemon --pidfile=$PIDFILE \
44 --syslog-facility=$LOGFACILITY $HIPPOTATD_ARGS
45}
46do_stop () {
47 ssd --stop --retry 5
48}
49
50case "$1" in
51start)
52 log_daemon_msg "Starting IP over HTTP server" hippotatd
53 do_start
54 log_end_msg $rc
55 ;;
56
57stop)
58 log_daemon_msg "Stopping IP over HTTP server" hippotatd
59 do_stop
60 log_end_msg $rc
61 ;;
62
63restart|force-reload)
64 log_daemon_msg "Restarting IP over HTTP server" hippotatd
65 do_stop
66 sleep 1
67 do_start
68 log_end_msg $rc
69 ;;
70
71reload)
72 log_failure_msg "Cannot reload hippotat - need restart"
73 exit 1
74 ;;
75
76*)
77 echo >&2 "$0: unknown action $1"
78 exit 1
79 ;;
80
81esac
82
83exit 0