initscript: use authbind
[hippotat] / 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