#!/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: $local_fs $syslog # Required-Stop: # Default-Start: 3 4 5 # Default-Stop: 0 1 2 6 # Short-Description: Firebird server database # Description: Starts and stops the Firebird database server backend daemon. ### END INIT INFO # Source function library - RedHat or Mandriva specific # functions actually used: checkpid killproc daemon . /etc/rc.d/init.d/functions # To run more instances of firebird: # Copy /usr/lib/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=/etc/firebird # No changes needed below for multiple instances name=$(basename `readlink -f $0`) 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/$INSTANCE.pid" FULLNAME="Firebird server [$INSTANCE]" LD_LIBRARY_PATH=$FIREBIRD/lib export FIREBIRD LD_LIBRARY_PATH ISC_USER= ISC_PASSWORD= export ISC_USER ISC_PASSWORD GUARDIAN=$FIREBIRD/bin/fbguard if [ ! -x $GUARDIAN ]; then GUARDIAN=/usr/sbin/fbguard fi # initialize as "success" RETVAL=0 # See how we were called. case "$1" in start) gprintf "Starting %s " "$FULLNAME" daemon --user=$FBRunUser "export FIREBIRD LD_LIBRARY_PATH; $GUARDIAN -pidfile $pidfile -daemon -forever" RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$name echo ;; stop) if [ -f $pidfile ] then gprintf "Stopping %s: " "$FULLNAME" killproc -p $pidfile $name RETVAL=$? echo else gprintf "%s server is stopped" "$FULLNAME" echo fi [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$name ;; 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" RETVAL=3 fi ;; restart|reload) $0 stop sleep 1 $0 start RETVAL=$? ;; *) gprintf "Usage: %s {start|stop|status|restart|reload}\n" "$0" exit 1 esac exit $RETVAL