Sophie

Sophie

distrib > Mandriva > current > i586 > media > contrib-release-src > by-pkgid > d057f3bc97838ef87f5a1047e1da05af > files > 5

oar-2.4.1-1mdv2010.1.src.rpm

#!/bin/sh

# chkconfig: 345 99 01

### BEGIN INIT INFO
# Provides: oar-server
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 345
# Short-Description: Start/Stop the oar server daemon
# Description: OAR is a resource manager (or batch scheduler) for large computing clusters
### END INIT INFO

RETVAL=0
DAEMON=/usr/sbin/oar-server
DESC=oar-server
PIDFILE=/var/run/oar-server.pid
CONFIG=/etc/oar/oar.conf

test -x $DAEMON || exit 0

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

# Set sysconfig settings
[ -f /etc/sysconfig/oar-server ] && . /etc/sysconfig/oar-server

check_sql() {
        echo -n "Checking oar SQL base: "
	if [ -f $CONFIG ] && . $CONFIG ; then
           :
        else
          echo -n "Error loading $CONFIG"
          failure
          exit 1
        fi
        if [ "$DB_TYPE" = "mysql" -o "$DB_TYPE" = "Pg" ] ; then
          export PERL5LIB="/usr/share/oar"
          export OARCONFFILE="$CONFIG"
          perl <<EOS && success || failure 
          use oar_iolib;
	  \$Db_type="$DB_TYPE";
          if (iolib::connect_db("$DB_HOSTNAME","$DB_PORT","$DB_BASE_NAME","$DB_BASE_LOGIN","$DB_BASE_PASSWD",0)) { exit 0; }
          else { exit 1; }
EOS
        else
          echo -n "Unknown $DB_TYPE database type"
          failure
          exit 1
        fi
}

sql_init_error_msg (){
  echo
  echo "OAR database seems to be unreachable." 
  echo "Did you forget to initialize it or to configure the oar.conf file?"
  echo "See http://oar.imag.fr/docs/manual.html#configuration-of-the-cluster for more infos"
  exit 1
}

start() {
        echo -n "Starting $DESC: "
        daemon $DAEMON $DAEMON_OPTS && success || failure
        RETVAL=$?
        echo
}
stop() {
        echo -n "Stopping $DESC: "
        if [ -n "`pidfileofproc $DAEMON`" ]; then
            killproc $DAEMON
            sleep 1
            killall Almighty 2>/dev/null
            sleep 1
            killall -9 Almighty 2>/dev/null
            RETVAL=3
        else
            failure $"Stopping $DESC"
        fi
        RETVAL=$?
        echo
}

case "$1" in
  start)
        check_sql || sql_init_error_msg
        start
        ;;
  stop)
        stop
        ;;
  restart|force-reload|restart)
        stop
        sleep 1
        start
        ;;
  status)
        status $DAEMON
        ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart}"
        RETVAL=3
esac
exit $RETVAL