#!/bin/sh
#
# pbs_server    This script will start and stop the PBS Server
#
# chkconfig: 345 90 10
# description: The PBS server coordinates all machines running PBS jobs.

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

prog="pbs_server"

# PBS_HOME, ULIMIT, SYSCTL
[ -f /etc/sysconfig/pbs ] && . /etc/sysconfig/pbs

test X"$PBS_HOME" = "X" && PBS_HOME=/var/spool/pbs
PBS_DAEMON=/usr/sbin/pbs_server
export PBS_DAEMON PBS_HOME
[ -f $PBS_DAEMON ] || exit 0

export MALLOC_CHECK_=0
ulimit -n 32768 -l 102400 -s unlimited

RETVAL=0

start() {
	# Create a serverdb file if we need one.
	if test ! -f $PBS_HOME/server_priv/serverdb ; then
	   echo -n "Initialising PBS Server Database: "
	   $PBS_DAEMON -t create
	   sleep 5
	   killproc pbs_server
	   sleep 3
	   /bin/rm -f /var/spool/pbs/server_priv/server.lock
	   test ! -f /var/spool/pbs/server_priv/serverdb && \
		success || failure
	   echo
	fi
	echo -n $"Starting $prog: "
	daemon $PBS_DAEMON $PBS_SERVER_FLAGS
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/pbs_server
	return $RETVAL
}


stop() {
	echo -n $"Stopping $prog: "
	killproc pbs_server
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/pbs_server
	return $RETVAL
}

restart() {
	stop
	sleep 3
	start
}

relog() {
	echo -n $"Reopening log files: "
	killproc pbs_server -HUP
	RETVAL=$?
	echo
	return $RETVAL
}

# See how we were called.
case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  status)
	status pbs_server
	;;
  restart)
	restart
	;;
  condrestart)
	test -f /var/lock/subsys/pbs_server && restart || exit 0
        ;;
  reconfig|reload)
	relog
	;;
  *)
	echo $"Usage: $0 {start|stop|status|restart|condrestart|reconfig|relog}"
	exit 1
esac

exit $?
