chiark / gitweb /
initscript: use authbind
[hippotat.git] / debian / hippotat.init
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
13 DAEMON=/usr/sbin/hippotat
14 MASTER_CONFIG=/etc/hippotat/master.cfg
15 USER=Debian-hippotat
16 PIDFILE=/var/run/hippotat/hippotatd.pid
17 LOGFACILITY=daemon
18 # HIPPOTATD_ARGS
19 DESCRIPTION='Asinine IP over HTTP server'
20 if type -p authbind >/dev/null 2>&1; then AUTHBIND=authbind; fi
21
22 . /etc/default/hippotatd
23
24 test -f $DAEMON || exit 0
25 egrep '^[^      #]' $MASTER_CONFIG >/dev/null 2>&1 || exit 0
26
27 . /lib/lsb/init-functions
28
29 ssd () {
30         set +e
31         start-stop-daemon --start --quiet --user $USER --pidfile=$PIDFILE "$@"
32         rc=$?
33         set -e
34 }
35 ensure_dirs () {
36         pidfiledir=${PIDFILE%/*}
37         if test -d ${pidfiledir}; then return; fi
38         mkdir -m 755 $pidfiledir
39         chown $USER $pidfiledir
40 }
41
42 do_start () {
43         ensure_dirs
44         ssd     --chuid $USER --startas                         \
45                 $AUTHBIND $DAEMON --daemon --pidfile=$PIDFILE   \
46                 --syslog-facility=$LOGFACILITY $HIPPOTATD_ARGS
47 }
48 do_stop () {
49         ssd     --stop --retry 5
50 }
51
52 case "$1" in
53 start)
54         log_daemon_msg "Starting $DESCRIPTION" hippotatd
55         do_start
56         log_end_msg $rc
57         ;;
58
59 stop)
60         log_daemon_msg "Stopping $DESCRIPTION" hippotatd
61         do_stop
62         log_end_msg $rc
63         ;;
64
65 restart|force-reload)
66         log_daemon_msg "Restarting $DESCRIPTION" hippotatd
67         do_stop
68         sleep 1
69         do_start
70         log_end_msg $rc
71         ;;
72
73 reload)
74         log_failure_msg "Cannot reload hippotat - need restart"
75         exit 1
76         ;;
77
78 *)
79         echo >&2 "$0: unknown action $1"
80         exit 1
81         ;;
82
83 esac
84
85 exit 0