#!/bin/sh
# Start/stop the FreeRADIUS daemon.

set -e

source /lib/lsb/init-functions

PROG="freeradius"
PROGRAM="/usr/sbin/freeradius"
PIDFILE="/var/run/freeradius/freeradius.pid"
DESCR="FreeRADIUS daemon"

test -f $PROGRAM || exit 0

# /var/run may be a tmpfs
test -d /var/run/freeradius || {
	mkdir -p /var/run/freeradius
	chown freerad:freerad /var/run/freeradius
}

case "$1" in
	start)
#		echo -n "Starting $DESCR: "
		log_daemon_msg "Starting $DESCR" "$PROG"
		start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $PROGRAM
		if [ $? = 0 ]; then
#			echo "$PROG."
			log_end_msg 0
		else
#			echo "(failed!  run '$PROGRAM -x' to find out why.)"
			log_end_msg 1
			exit 1
		fi
		;;
	stop)
#		echo -n "Stopping $DESCR: "
		log_daemon_msg "Stopping $DESCR" "$PROG"
		start-stop-daemon --stop --quiet --pidfile $PIDFILE
#		echo "$PROG."
		log_end_msg 0
		;;
	restart)
#		echo -n "Restarting $DESCR: "
		$0 stop
		sleep 2
		$0 start
		;;
	reload | force-reload) 
#		echo -n "Reloading configuration files for $DESCR"
		log_action_begin_msg "Reloading configuration files for $DESCR"
		start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE
		log_action_cont_msg "HUP sent"
		sleep 2
#		ps --pid $(cat $PIDFILE) > /dev/null || exit 1
		ps --pid $(cat $PIDFILE) > /dev/null
		if [ $? = 0 ]; then
			log_action_end_msg 0
		else
			log_action_end_msg 1 "$DESCR died"
			exit 1
		fi
#		echo "."
		;;
	*)
		echo "Usage: /etc/init.d/freeradius start|stop|restart|reload|force-reload"
		exit 1 
esac

exit 0
