Install tids init script
[trust_router.git] / debian / moonshot-trust-router.tids.init
1 #!/bin/bash
2 ### BEGIN INIT INFO
3 # Provides: tids
4 # Default-Start: 3 5
5 # Default-Stop: 0 1 2 4 6
6 # Required-Start: $freeradius
7 # Required-Stop:
8 # Should-Start: $network
9 # Short-Description: Starts Moonshot TIDS
10 # Description: Starts the Moonshot Temporary ID Service
11 ### END INIT INFO
12
13 PATH=/sbin:/bin:/usr/sbin:/usr/bin
14
15 . /lib/lsb/init-functions
16
17 [ -z "$HOME" ] && export HOME=/
18
19 usage() {
20     echo "Usage: $0 {start|stop|status}"
21 }
22
23 # Load the configuration
24 [ -f /etc/default/trust_router ] || exit 0
25 . /etc/default/trust_router
26 TIDS_PIDDIR=/var/run/trust_router
27 TIDS_LOGDIR=/var/log/trust_router
28
29 # Create the PID and LOG directories
30 [ -d "$TIDS_PIDDIR" ] || mkdir -p $TIDS_PIDDIR && chown $TIDS_USER:$TIDS_GROUP $TIDS_PIDDIR
31 [ -d "$TIDS_LOGDIR" ] || mkdir -p $TIDS_LOGDIR && chown $TIDS_USER:$TIDS_GROUP $TIDS_LOGDIR
32
33 # Some variables
34 prog=/usr/lib/trust_router/tids-wrapper
35 PIDFILE="$TIDS_PIDDIR/tids.pid"
36 LOGFILE="$TIDS_LOGDIR/tids.log"
37
38 # Does the trust router and wrapper exist
39 [ -x /usr/bin/tids ] || exit 5
40 [ -x $prog ] || exit 5
41
42 [ -f "$LOGFILE" ] || touch $LOGFILE && chown $TIDS_USER:$TIDS_GROUP $LOGFILE
43
44 OPTIONS="$PIDFILE $LOGFILE $ipaddr $gssname $hostname $/var/lib/trust_router/keys"
45
46 case $1 in
47     start)
48         if [ -f ${PIDFILE} ] ;
49         then
50                 OLD_PID=$(cat "$PIDFILE")
51
52                 if [ -d "/proc/$OLD_PID" ] ;
53                 then
54                         echo "Error: TIDS already running" ; exit 1
55                 else
56                         rm $PIDFILE
57                 fi
58         fi
59
60         timestamp=$(date)
61         echo "$timestamp Starting TIDS..." >> $LOGFILE
62         log_daemon_msg "Starting TIDS" "tids"
63         start-stop-daemon --start --chuid $TIDS_USER --pidfile $PIDFILE --oknodo --startas $prog $OPTIONS
64         status=$?
65         log_end_msg $status
66         ;;
67     stop)
68         timestamp=$(date)
69         echo "$timestamp Stopping TIDS..." >> $LOGFILE
70         log_daemon_msg "Stopping TIDS" "tids"
71         start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
72         status=$?
73         log_end_msg $status
74         rm -f $PIDFILE
75         ;;
76     status)
77         if [ -f $PIDFILE ] ;
78         then
79                 PID=$(cat "$PIDFILE")
80
81                 if [ -d "/proc/$PID" ] ;
82                 then
83                         echo "TIDS is running (pid $PID)"
84                 else
85                         if [ -e $PIDFILE ] ; then
86                                 echo "TIDS appears to be dead but its PID file exists"
87                         else
88                                 echo "TIDS appears to be stopped"
89                         fi
90                 fi
91         else
92                 echo "TIDS appears to be stopped"
93         fi
94         exit 0
95         ;;
96     reload | force-reload | condrestart | try-restart)
97         usage
98         exit 3
99         ;;
100     *)
101         usage
102         exit 2
103         ;;
104 esac