#!/bin/sh
# /etc/init.d/pgpool
# chkconfig:    2345 90 14
# description:  Starts and stops the pgpool daemon.
# processname: pgpool
# Do not load RH compatibility interface.
WITHOUT_RC_COMPAT=1
# Source function library.
. /etc/init.d/functions


. /etc/sysconfig/pgpool
PGUSER=postgres
BINARY="/usr/bin/pgpool"
CONFIG="/etc/pgpool/pgpool.conf"
PIDFILE=/var/run/pgpool/pgpool.pid
#LOCKFILE=/var/lock/subsys/pgpool
RETVAL=0

start()
{
    start_daemon --pidfile "$PIDFILE" --user "$PGUSER" --expect-user root --displayname pgpool -- \
                 "$BINARY" " -f $CONFIG 2>&1|logger -t pgpool -p local0.info";
    RETVAL=$?
    return $RETVAL
}

stop()
{
    # pidfile exists -- may be server running
    if [ -f "$PIDFILE" ]; then
	msg_stopping pgpool
	if su -l $PGUSER -s /bin/sh -c "$BINARY -f $CONFIG $STOP_OPTS stop" >/dev/null 2>&1; then
	    rm -f "$LOCKFILE"
	    echo_success
	else
	    echo_failure
	fi
    else
	msg_not_running pgpool
	echo_passed
    fi
    echo
}

restart()
{
   stop
   start
}

reload()
{
    msg_reloading postgresql
    if su -l $PGUSER -s /bin/sh -c "$BINARY -f $CONFIG $STOP_OPTS reload" >/dev/null 2>&1; then
	echo_success
    else
	echo_failure
    fi
    echo
}

case "$1" in
    start)
	start
    ;;
    stop)
	stop
    ;;
    restart)
	restart
    ;;
    reload)
	reload
    ;;
    condrestart)
	if [ -e "$LOCKFILE" ]; then
	    restart
	fi
    ;;
    condreload)
	if [ -e "$LOCKFILE" ]; then
	    reload
	fi
    ;;
    *)
	msg_usage "${0##*/} {start|stop|restart|reload|condrestart|condreload}"
	RETVAL=1
esac

exit $RETVAL
