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
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 if [ -d "$FREERADIUS_CONF_LOCAL" -a -z "$FREERADIUS_OPTIONS" ]; then
46 FREERADIUS_OPTIONS="-d $FREERADIUS_CONF_LOCAL"
49 export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
55 log_daemon_msg "Starting $DESCR" "$PROG"
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=$?
63 log_daemon_msg "Stopping $DESCR" "$PROG"
65 killproc -p "$PIDFILE" || ret=$?
70 configtest || exit 150
77 configtest || exit 150
79 if status_of_proc -p "$PIDFILE" "$PROG" "$DESCR"; then
80 log_daemon_msg "Reloading $DESCR" "$PROG"
82 start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE || ret=$?
87 configtest|testconfig)
88 configtest || exit 150
94 echo "$PROGRAM already running; for live debugging see raddebug(8)"
97 $PROGRAM -X $FREERADIUS_OPTIONS || exit $?
102 if [ $? -eq 0 ]; then
103 echo "$PROGRAM already running; for live debugging see raddebug(8)"
106 $PROGRAM -f -xx -l stdout $FREERADIUS_OPTIONS || exit $?
110 status_of_proc -p "$PIDFILE" "$PROGRAM" "$PROG" && exit 0 || exit $?
114 echo "Usage: $0 start|stop|restart|force-reload|reload|configtest|debug|debug-threaded|status"