#!/bin/sh
### BEGIN INIT INFO
# Provides: pbs_server
# Required-Start: $network $syslog $remote_fs pbs_sched
# Required-Stop: $network $syslog
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Description: Tera-scale Open-source Resource and QUEue manager.
#	Torque PBS is a versatile batch system for SMPs and clusters
# Short-Description: start and stop Torque PBS Server
### END INIT INFO

WITHOUT_RC_COMPAT=1

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

# Source networking configuration.
SourceIfNotEmpty /etc/sysconfig/network

PBS_USER=root
PBS_HOME=/var/spool/torque/

PIDFILE=$PBS_HOME/server_priv/server.lock
LOCKFILE=/var/lock/subsys/pbs_server
RETVAL=0

start(){
	is_yes "$NETWORKING" || return 0

	if [ -r $PBS_HOME/server_priv/serverdb ];then
	    start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user $PBS_USER -- pbs_server
	else
	    start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user $PBS_USER -- pbs_server -t create
	fi

	RETVAL=$?
	return $RETVAL
}

stop(){
	stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user $PBS_USER -- pbs_server
	RETVAL=$?

	return $RETVAL
}

reload()
{
	msg_reloading pbs_server
	stop_daemon --pidfile "$PIDFILE" --expect-user $PBS_USER -HUP -- pbs_server
	RETVAL=$?
	return $RETVAL
}

restart()
{
	stop
	start
}


# See how we were called.
case "$1" in
    start)
	start
	;;
    stop)
	stop
	;;
    restart)
	restart
	;;
    reload)
	reload
	;;
    condstop)
        if [ -e "$LOCKFILE" ]; then
                stop
        fi
        ;;
    condrestart)
        if [ -e "$LOCKFILE" ]; then
                restart
        fi
        ;;
    condreload)
        if [ -e "$LOCKFILE" ]; then
                reload
        fi
        ;;
    status)
	status --pidfile "$PIDFILE" --expect-user $PBS_USER  -- pbs_server
	RETVAL=$?
	;;
    *)
	msg_usage "${0##*/} {rotate|start|stop|reload|restart|condstop|condrestart|condreload|status}"
	RETVAL=1
esac

exit $RETVAL
