#!/bin/sh

# chkconfig: 345 20 80
# 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/interbase database server daemon 

# Source function library - RedHat or Mandriva specific
# functions actually used: checkpid success failure
. /etc/rc.d/init.d/functions

# To run more instances of firebird:
#   Copy /usr/lib64/firebird somewhere
#   Copy this script under a new name
#   Change at least INSTANCE and FIREBIRD below
#   Edit the copied firebird.conf to change at least RemoteServicePort
#   Optionally run chkconfig to autostart the new service
INSTANCE=default
FIREBIRD=/usr/lib64/firebird

# No changes needed below for multiple instances
FBRunUser=firebird
pidfile=/var/run/firebird/$INSTANCE.pid
FULLNAME="Firebird server [$INSTANCE]"
LD_LIBRARY_PATH=$FIREBIRD/lib
MANAGER=$FIREBIRD/bin/fbmgr.bin

export FIREBIRD LD_LIBRARY_PATH

# Check the file is there and is executable.
[ -x $MANAGER ] || exit 1

# See how we were called.
case "$1" in
  start)
	gprintf "Starting %s " "$FULLNAME"
	echo $MANAGER -pidfile $pidfile -start -forever | su $FBRunUser
	RETVAL=$?
	[ $RETVAL -eq 0 ] && success || failure
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/firebird
	echo
	;;
  stop)
        if [ -f $pidfile ]
        then
                action "Stopping %s: " "$FULLNAME" kill -TERM `cat $pidfile`
        else
                gprintf "$FULLNAME server is stopped"
                echo
        fi
        RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/firebird
	;;
  status)
	if [ -f $pidfile ]
	then
		pid=`cat $pidfile`
		checkpid $pid
		RETVAL=$?
		[ $RETVAL -eq 0 ] && gprintf "%s is running (pid %s)\n" "$FULLNAME" "$pid" || gprintf "%s is dead but pid file exists\n" "$FULLNAME"
	else
		gprintf "%s is stopped\n" "$FULLNAME"
	fi
	;;
  restart|reload)
	$0 stop
	sleep 1
	$0 start
	RETVAL=$?
	;;
  *)
	gprintf "Usage: firebird {start|stop|status|restart|reload}\n"
	exit 1
esac

exit $RETVAL

