#! /bin/sh
#
# postgres.init Start postgres back end system.
#
# Author:       Thomas Lockhart <Thomas.Lockhart@jpl.nasa.gov>
#               based on news startup by David Myers
#
# Written for RedHat Linux but should apply to other Linux distributions.
#
# To be installed as /etc/rc.d/init.d/postgres.init
# Softlink into rc5.d to bring up with multiuser and networking:
#   cd /etc/rc.d/rc5.d; ln -s ../init.d/postgres.init S98postgres
#
# Assumptions:
# - the postgres user is named "postgres"
# - the postgres user is running csh/tcsh
#

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

# Get config.
. /etc/sysconfig/network

# Check that networking is up.
# Pretty much need it for postmaster.
if [ ${NETWORKING} = "no" ]
then
	exit 0
fi

[ -f /opt/postgres/current/bin/postmaster ] || exit 0

# See how we were called.
case "$1" in
  start)
	echo -n "Starting postgres service: "
# force full login to get path names and environment variables
# postgres runs tcsh so use proper syntax in redirection
# change this line if the postgres superuser account is not "postgres"
# change this line if another shell syntax is necessary
#	su - postgres -c 'postmaster -S' > /dev/null&
	su - postgres -c 'postmaster >>&! /tmp/postmaster.log&' > /dev/null&
	sleep 5
	pid=`pidof postmaster`
	echo -n "postmaster [$pid]"
#	touch /var/lock/subsys/postmaster
	echo
	;;
  stop)
	echo -n "Stopping postgres service: "
	pid=`pidof postmaster`
	if [ "$pid" != "" ] ; then
		echo -n "postmaster [$pid]"
		kill -TERM $pid
		sleep 1
	fi
	echo
	;;
  *)
	echo "Usage: postgres.init {start|stop}"
	exit 1
esac

exit 0
