Fix single space in report message
[freeradius.git] / debian / freeradius.init
1 #!/bin/sh
2 # Start/stop the FreeRADIUS daemon.
3
4 ### BEGIN INIT INFO
5 # Provides:          freeradius
6 # Required-Start:    $remote_fs $network $syslog
7 # Should-Start:      $time mysql slapd postgresql samba krb5-kdc
8 # Required-Stop:     $remote_fs $syslog
9 # Default-Start:     2 3 4 5
10 # Default-Stop:      0 1 6
11 # Short-Description: Radius Daemon
12 # Description:       Extensible, configurable radius daemon
13 ### END INIT INFO
14
15 PROG="freeradius"
16 PROGRAM="/usr/sbin/freeradius"
17 PIDFILE="/var/run/freeradius/freeradius.pid"
18 DESCR="FreeRADIUS daemon"
19
20 set -e
21
22 . /lib/lsb/init-functions
23
24 configtest() {
25     log_action_begin_msg "Checking $DESCR configuration"
26
27     out=`$PROGRAM -Cxl stdout $FREERADIUS_OPTIONS`; ret=$?
28     out=`echo "${out}" | tail -n 1 | sed 's/^\s*ERROR:\s*\(.*\)\s*$/\1/'`
29     log_action_end_msg $ret "$out"
30     return $ret
31 }
32
33 if [ -r /etc/default/$PROG ]; then
34     . /etc/default/$PROG
35 fi
36
37 test -f $PROGRAM || exit 0
38
39 # /var/run may be a tmpfs
40 if [ ! -d /var/run/freeradius ]; then
41     mkdir -p /var/run/freeradius
42     chown freerad:freerad /var/run/freeradius
43 fi
44
45 export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
46
47 ret=0
48
49 case "$1" in
50     start)
51         log_daemon_msg "Starting $DESCR" "$PROG"
52
53         # eval allows quoted arguments (config directories for example) to be passed in $FREERADIUS_OPTIONS
54         eval "start_daemon -p '$PIDFILE' '$PROGRAM' $FREERADIUS_OPTIONS" || ret=$?
55         log_end_msg $ret
56         ;;
57
58     stop)
59         log_daemon_msg "Stopping $DESCR" "$PROG"
60
61         killproc -p "$PIDFILE" || ret=$?
62         log_end_msg $ret
63         ;;
64
65     restart|force-reload)
66         configtest || exit 150
67
68         $0 stop
69         $0 start
70         ;;
71
72     reload)
73         configtest || exit 150
74
75         if status_of_proc -p "$PIDFILE" "$PROG" "$DESCR"; then
76             log_daemon_msg "Reloading $DESCR" "$PROG"
77
78             start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE || ret=$?
79             log_end_msg $ret
80         fi
81         ;;
82
83     configtest|testconfig)
84         configtest || exit 150
85         ;;
86
87     debug)
88         $0 status
89         if [ $? -eq 0 ]; then
90             echo "$PROGRAM already running; for live debugging see raddebug(8)"
91             exit 151
92         fi
93         $PROGRAM -X $FREERADIUS_OPTIONS || exit $?
94         ;;
95
96     debug-threaded)
97         $0 status
98         if [ $? -eq 0 ]; then
99             echo "$PROGRAM already running; for live debugging see raddebug(8)"
100             exit 151
101         fi
102         $PROGRAM -f -xx -l stdout $FREERADIUS_OPTIONS || exit $?
103         ;;
104
105     status)
106         status_of_proc -p "$PIDFILE" "$PROGRAM" "$PROG" && exit 0 || exit $?
107         ;;
108
109     *)
110         echo "Usage: $0 start|stop|restart|force-reload|reload|configtest|debug|debug-threaded|status"
111         exit 1
112         ;;
113 esac
114
115 exit 0