#!/bin/sh

# chkconfig: 345 80 20
# description: Start/Stop firebird database server
#
# This file belongs in /etc/init.d where it will be run
# on system startup and shutdown to start the background
# Firebird database server daemon 

### BEGIN INIT INFO
# Provides:          firebird
# Required-Start:    $remote_fs $syslog $named
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start firebird super-server
# Description:       Start the firebird guardian process (fbguard)
#                    which starts the actual firebird server process
#                    (fbserver) and makes sure there is always fbserver
#                    running
### END INIT INFO

# This init script contains functions specific for debian
# init scripts.

# Source function library.
#. /etc/rc.d/init.d/functions

FIREBIRD=@FB_CONFDIR@
FBRunUser=firebird

makeFbDir() {
	mDir=${1}
	mode=${2}
	if [ ! -d $mDir ]; then
		rm -rf $mDir
		mkdir $mDir
		if [ "$mode" ]; then
			chmod $mode $mDir
		fi
	fi
	chown $FBRunUser:$FBRunUser $mDir
}
runDir=/var/run/firebird
makeFbDir $runDir
lockDir=/tmp/firebird
makeFbDir $lockDir 0770

pidfile="$runDir/`basename $0`.pid"
FB_OPTS="-pidfile $pidfile -daemon -forever"
export FIREBIRD

ISC_USER=
ISC_PASSWORD=
export ISC_USER ISC_PASSWORD

GUARDIAN=$FIREBIRD/bin/fbguard
if [ ! -x $GUARDIAN ]; then
	GUARDIAN=@FB_SBINDIR@/fbguard
fi

# See how we were called.
case "$1" in
  start)
	echo -n "Starting Firebird server: "
	start-stop-daemon --start --quiet --oknodo --chuid $FBRunUser --exec $GUARDIAN -- $FB_OPTS
	RETVAL=$?
	;;
  stop)
	echo -n "Stopping Firebird server: "
	if [ -f $pidfile ]
	then
		kill `cat $pidfile`
	fi
	RETVAL=$?
	;;
  restart|reload)
	$0 stop
	$0 start
	RETVAL=$?
	;;
  shutdown)
  	echo -n "Forcibly killing Firebird server..."
	killall fbguard
	killall fbserver
	killall fb_smp_server
	echo "done."
	RETVAL=0
	;;
  *)
	echo "Usage: firebird {start|stop|shutdown|restart|reload}"
	exit 1
esac

exit $RETVAL
