# Start/stop the FreeRADIUS daemon.
### BEGIN INIT INFO
-# Provides: radiusd
-# Required-Start: $network
-# Should-Start: $time mysql ldap postgresql samba krb5-kdc
-# Required-Stop:
+# Provides: freeradius
+# Required-Start: $remote_fs $network $syslog
+# Should-Start: $time mysql slapd postgresql samba krb5-kdc
+# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
+# Short-Description: Radius Daemon
+# Description: Extensible, configurable radius daemon
### END INIT INFO
+set -e
+
+. /lib/lsb/init-functions
+
PROG="freeradius"
PROGRAM="/usr/sbin/freeradius"
PIDFILE="/var/run/freeradius/freeradius.pid"
# /var/run may be a tmpfs
if [ ! -d /var/run/freeradius ]; then
- install -o freerad -g freerad -m 0755 -d /var/run/freeradius
- if [ $? -ne 0 ]; then
- echo "Error creating the /var/run/freeradius directory."
- exit 1
- fi
+ mkdir -p /var/run/freeradius
+ chown freerad:freerad /var/run/freeradius
fi
+export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
+
+ret=0
+
case "$1" in
- start)
- echo -n "Starting $DESCR: "
- start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $PROGRAM
- if [ $? -eq 0 ]; then
- echo "$PROG."
- else
- echo "(failed! run '$PROGRAM -x' to find out why.)"
- exit 1
- fi
- ;;
- stop)
- echo -n "Stopping $DESCR: "
- start-stop-daemon --stop --retry=TERM/30/KILL/5 --oknodo --quiet --pidfile $PIDFILE
- echo "$PROG."
- ;;
- restart)
- echo "Restarting $DESCR..."
- $0 stop
- $0 start
- ;;
- reload | force-reload)
- echo -n "Reloading configuration files for $DESCR"
- start-stop-daemon --stop --signal 1 --oknodo --quiet --pidfile $PIDFILE
- sleep 2
- [ -r $PIDFILE ] && kill -0 $(cat $PIDFILE) > /dev/null 2>&1
- if [ $? -eq 0 ]; then
- echo "."
- else
- echo " failed! ($PROG has died)"
- exit 1
- fi
- ;;
- *)
- echo "Usage: $0 start|stop|restart|reload|force-reload"
- exit 1
- ;;
+ start)
+ log_daemon_msg "Starting $DESCR" "$PROG"
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $PROGRAM || ret=$?
+ log_end_msg $ret
+ exit $ret
+ ;;
+ stop)
+ log_daemon_msg "Stopping $DESCR" "$PROG"
+ if [ -f "$PIDFILE" ] ; then
+ start-stop-daemon --stop --retry=TERM/30/KILL/5 --quiet --pidfile $PIDFILE || ret=$?
+ log_end_msg $ret
+ else
+ log_action_cont_msg "$PIDFILE not found"
+ log_end_msg 0
+ fi
+ ;;
+ restart|force-reload)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: $0 start|stop|restart|force-reload"
+ exit 1
+ ;;
esac
exit 0