Add SQL backing to Moonshot-*-TargetedId generation. Added three attributes for gener...
[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 if [ -d "$FREERADIUS_CONF_LOCAL" -a -z "$FREERADIUS_OPTIONS" ]; then
46   FREERADIUS_OPTIONS="-d $FREERADIUS_CONF_LOCAL"
47 fi
48
49 export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
50
51 ret=0
52
53 case "$1" in
54     start)
55         log_daemon_msg "Starting $DESCR" "$PROG"
56
57         # eval allows quoted arguments (config directories for example) to be passed in $FREERADIUS_OPTIONS
58         eval "start_daemon -p '$PIDFILE' '$PROGRAM' $FREERADIUS_OPTIONS" || ret=$?
59         log_end_msg $ret
60         ;;
61
62     stop)
63         log_daemon_msg "Stopping $DESCR" "$PROG"
64
65         killproc -p "$PIDFILE" || ret=$?
66         log_end_msg $ret
67         ;;
68
69     restart|force-reload)
70         configtest || exit 150
71
72         $0 stop
73         $0 start
74         ;;
75
76     reload)
77         configtest || exit 150
78
79         if status_of_proc -p "$PIDFILE" "$PROG" "$DESCR"; then
80             log_daemon_msg "Reloading $DESCR" "$PROG"
81
82             start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE || ret=$?
83             log_end_msg $ret
84         fi
85         ;;
86
87     configtest|testconfig)
88         configtest || exit 150
89         ;;
90
91     debug)
92         $0 status
93         if [ $? -eq 0 ]; then
94             echo "$PROGRAM already running; for live debugging see raddebug(8)"
95             exit 151
96         fi
97         $PROGRAM -X $FREERADIUS_OPTIONS || exit $?
98         ;;
99
100     debug-threaded)
101         $0 status
102         if [ $? -eq 0 ]; then
103             echo "$PROGRAM already running; for live debugging see raddebug(8)"
104             exit 151
105         fi
106         $PROGRAM -f -xx -l stdout $FREERADIUS_OPTIONS || exit $?
107         ;;
108
109     status)
110         status_of_proc -p "$PIDFILE" "$PROGRAM" "$PROG" && exit 0 || exit $?
111         ;;
112
113     *)
114         echo "Usage: $0 start|stop|restart|force-reload|reload|configtest|debug|debug-threaded|status"
115         exit 1
116         ;;
117 esac
118
119 exit $ret