#! /bin/sh
#
# PostgreSQL	Start, stop, and get status on the PostgreSQL RDMBS.	
#               This script is Linux distribution independent 
#                 (or at least should be :).
# 
# By Ryan Kirkpatrick <pgsql@rkirkpat.net>.
#
# If you find any problems with this script, or have suggestions
# please send them to me.

# Arguements for pg_ctl and then for the postmaster. Change as needed.
ARGS="-w -D /home/postgres/data"
PM_ARGS="-i -F"

# Changes should not be needed beyond this point.

# The path that is to be used for the script.
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# What to use to start up the postmster, and a few names.
DAEMON=/home/postgres/bin/pg_ctl
NAME=postmaster
FILE=postgresql
DESC="PostgreSQL RDBMS"

# Who to run pg_ctl as, should be postgres.
USER="postgres:postgres"

# Where to keep a log file.
LOG="/usr/local/pgsql/server.log"

# Only start if we can find pg_ctl.
test -f $DAEMON || exit 0
set -e

# Parse command line parameters.
case "$1" in
  start)
	# Start the postmaster using pg_ctl and given options.
	echo -n "Starting $DESC: "
	su - postgres sh -c "$DAEMON start $ARGS -o \"$PM_ARGS\" >& $LOG"
	echo "$NAME."
	;;
  stop)
	# Stop the postmaster using pg_ctl.
	echo -n "Stopping $DESC: "
	su - postgres sh -c "$DAEMON stop >& /dev/null"
	echo "$NAME."
	;;
  restart)
	# Restart the postmaster by calling ourselves.
	/etc/init.d/$FILE stop
	sleep 5
	/etc/init.d/$FILE start
	;;
  status)
	# Print the status of the postmaster.
	su - postgres $DAEMON status
	;;
  *)
	# Print help.
	N=/etc/init.d/$FILE
	echo "Usage: $N {start|stop|restart|status}" >&2
	exit 1
	;;
esac

exit 0
