2 # Start/stop the FreeRADIUS daemon.
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
11 # Short-Description: Radius Daemon
12 # Description: Extensible, configurable radius daemon
16 PROGRAM="/usr/sbin/freeradius"
17 PIDFILE="/var/run/freeradius/freeradius.pid"
18 DESCR="FreeRADIUS daemon"
22 . /lib/lsb/init-functions
24 test_freeradius_config() {
25 log_action_begin_msg "Checking $DESCR configuration"
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"
33 if [ -r /etc/default/$PROG ]; then
37 test -f $PROGRAM || exit 0
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
45 export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
51 log_daemon_msg "Starting $DESCR" "$PROG"
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=$?
59 log_daemon_msg "Stopping $DESCR" "$PROG"
61 killproc -p "$PIDFILE" || ret=$?
66 test_freeradius_config || exit $?
73 test_freeradius_config || exit $?
75 if status_of_proc -p "$PIDFILE" "$PROG" "$DESCR"; then
76 log_daemon_msg "Reloading $DESCR" "$PROG"
78 start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE || ret=$?
83 configtest|testconfig)
84 test_freeradius_config || exit $?
88 $PROGRAM -X $FREERADIUS_OPTIONS
92 $PROGRAM -f -xx -l stdout $FREERADIUS_OPTIONS
96 status_of_proc -p "$PIDFILE" "$PROGRAM" "$PROG" && exit 0 || exit $?
100 echo "Usage: $0 start|stop|restart|force-reload|reload|configtest|debug|debug-threaded|status"