#!/bin/sh

### BEGIN INIT INFO
# Provides:		mda
# Required-Start:	$network $local_fs $syslog
# Required-Stop:	$network $local_fs
# Should-Start:		$mysql $postgresql
# Default-Start:	2 3 4 5
# Default-Stop:		0 1 6
# Short-Description:	Millistream Database Application
### END INIT INFO

# ChangeLog:
# 20100303 - Debianified the script so we get correct logging etc <henrik.holst@millistream.com>
# 20100202 - Remove pid file since mda with dropped privileges cannot do that <henrik.holst@millistream.com>
# 20091217 - Added force-reload since it is mandatory <henrik.holst@millistream.com>
# 20090611 - Cleanup restart David Kinnvall <david.kinnvall@alertir.com>
# 20090120 - Initial version Henrik Holst <henrik.holst@millistream.com>

PATH=/bin:/usr/bin:/sbin:/usr/sbin
PIDFILE=/var/run/mda.pid
DAEMON=/usr/bin/mda
CONFIG=/etc/mda.config

. /lib/lsb/init-functions

start() {
	log_daemon_msg "Starting Millistream Database Application" "mda"

	server_down=1

	if [ -e $PIDFILE ] ; then
		kill -0 `cat $PIDFILE` 2>/dev/null

		if [ $? -eq 0 ] ; then
			server_down=0
			break
		fi
	fi

	if [ $server_down -eq 0 ] ; then
		log_progress_msg "already running"
		log_end_msg 1
	else
		$DAEMON --check --config $CONFIG > /dev/null 2>&1

		if [ $? -ne 0 ] ; then
			log_end_msg 1
			log_failure_msg "System check failed. Please take a look at the syslog"
		else
			$DAEMON --daemon --config $CONFIG
			log_end_msg 0
		fi
	fi
}

stop() {
	log_daemon_msg "Stopping Millistream Database Application" "mda"

        if [ -e $PIDFILE ] ; then
                kill `cat $PIDFILE`
        fi

	server_down=0

	for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30; do
		if [ ! -e $PIDFILE ] ; then
			server_down=1
			break
		fi

		kill -0 `cat $PIDFILE` 2>/dev/null

		if [ $? -ne 0 ] ; then
			server_down=1
			break
		fi

		log_progress_msg "."
		sleep 1
	done

	if [ $server_down -eq 0 ] ; then
		log_daemon_msg "Killing Millistream Database Application by signal" "mda"
		kill -kill `cat $PIDFILE`
	fi

	rm -rf $PIDFILE
	log_end_msg 0
}

restart() {
        stop
        start
}

test -x $DAEMON && test -f $CONFIG || exit 0

case "$1" in
  start)
	start
	;;

  stop)
	stop
	;;

  restart)
	restart
	;;

  force-reload)
	restart
	;;

  *)
	echo $"Usage: $0 {start|stop|restart|force-reload}"
	exit 1
	;;

esac

exit 0

