/etc/init.d/postgres (SuSE 7.1)
#! /bin/sh
# Copyright (c) 1998 S.u.S.E. GmbH Fuerth, Germany.
#
# Author:
# Karl Eichwalder <ke@suse.de>, 1998
#
# /sbin/init.d/postgres
#
# and symbolic its link
#
# /sbin/rcpostgres
#
H=/usr/local/pgsql/bin/postmaster
LOGFILE=/usr/local/pgsql/log/postgresql.log
DATADIR=/usr/local/pgsql/data
. /etc/rc.config
# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}
# Force execution if not called by a runlevel directory.
test $link = $base && START_POSTGRES=yes
test "$START_POSTGRES" = yes || exit 0
# The echo return value for success (defined in /etc/rc.config).
return=$rc_done
case "$1" in
start)
echo -n "Starting service postgres"
## remove old socket (
pg_port=5432
if [ -S /tmp/.s.PGSQL.${pg_port} ]; then
rm -f /tmp/.s.PGSQL.${pg_port}
fi
## Start daemon with startproc(8). If this fails
## the echo return value is set appropriate.
su - postgres -c "/sbin/startproc -l $LOGFILE $H -i -o -F -D$DATADIR"\
|| return=$rc_failed
echo -e "$return"
;;
stop)
echo -n "Shutting down service postgres"
## Stop daemon with killproc(8) and if this fails
## set echo the echo return value.
killproc -TERM $H || return=$rc_failed
## ## no need to do the remove the socket; if properly shutdown, pg
## ## itself takes care about it.
## if [ -f /tmp/.s.PGSQL.${pg_port} ]; then
## rm -f /tmp/.s.PGSQL.${pg_port}
## fi
echo -e "$return"
;;
restart)
## If first returns OK call the second, if first or
## second command fails, set echo return value.
$0 stop && $0 start || return=$rc_failed
;;
reload)
## Choose ONE of the following two cases:
## First possibility: A few services accepts a signal
## to reread the (changed) configuration.
#echo -n "Reload service postgres"
#killproc -HUP /usr/sbin/postgres || return=$rc_failed
#echo -e "$return"
## Exclusive possibility: Some services must be stopped
## and started to force a new load of the configuration.
$0 stop && $0 start || return=$rc_failed
;;
status)
echo -n "Checking for service postgres: "
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.
checkproc $H && echo OK || echo No process
;;
# probe)
# ## Optional: Probe for the necessity of a reload,
# ## give out the argument which is required for a reload.
#
# #test /etc/postgres.conf -nt /var/run/postgres.pid && echo reload
# ;;
*)
# echo "Usage: $0 {start|stop|status|restart|reload[|probe]}"
echo "Usage: $0 {start|stop|status|restart|reload}"
exit 1
;;
esac
# Inform the caller not only verbosely and set an exit status.
test "$return" = "$rc_done" || exit 1
exit 0