#! /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 . # # 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