diff options
Diffstat (limited to 'contrib/start-scripts/linux')
-rw-r--r-- | contrib/start-scripts/linux | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/contrib/start-scripts/linux b/contrib/start-scripts/linux index 19042d0e994..e0174de571d 100644 --- a/contrib/start-scripts/linux +++ b/contrib/start-scripts/linux @@ -24,7 +24,7 @@ # Original author: Ryan Kirkpatrick <pgsql@rkirkpat.net> -# $PostgreSQL: pgsql/contrib/start-scripts/linux,v 1.6 2003/11/29 19:51:36 pgsql Exp $ +# $PostgreSQL: pgsql/contrib/start-scripts/linux,v 1.7 2004/10/01 18:30:21 tgl Exp $ ## EDIT FROM HERE @@ -34,7 +34,7 @@ prefix=/usr/local/pgsql # Data directory PGDATA="/usr/local/pgsql/data" -# Who to run pg_ctl as, should be "postgres". +# Who to run the postmaster as, usually "postgres". (NOT "root") PGUSER=postgres # Where to keep a log file @@ -54,38 +54,44 @@ fi # 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 postmaster -DAEMON="$prefix/bin/pg_ctl" +# What to use to start up the postmaster (we do NOT use pg_ctl for this, +# as it adds no value and can cause the postmaster to misrecognize a stale +# lock file) +DAEMON="$prefix/bin/postmaster" + +# What to use to shut down the postmaster +PGCTL="$prefix/bin/pg_ctl" set -e -# Only start if we can find pg_ctl. -test -f $DAEMON || exit 0 +# Only start if we can find the postmaster. +test -x $DAEMON || exit 0 # Parse command line parameters. case $1 in start) $ECHO_N "Starting PostgreSQL: "$ECHO_C - su - $PGUSER -c "$DAEMON start -D '$PGDATA' -s -l $PGLOG" + su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 echo "ok" ;; stop) echo -n "Stopping PostgreSQL: " - su - $PGUSER -c "$DAEMON stop -D '$PGDATA' -s -m fast" + su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast" echo "ok" ;; restart) echo -n "Restarting PostgreSQL: " - su - $PGUSER -c "$DAEMON restart -D '$PGDATA' -s -m fast -l $PGLOG" + su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w" + su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 echo "ok" ;; reload) echo -n "Reload PostgreSQL: " - su - $PGUSER -c "$DAEMON reload -D '$PGDATA' -s" + su - $PGUSER -c "$PGCTL reload -D '$PGDATA' -s" echo "ok" ;; status) - su - $PGUSER -c "$DAEMON status -D '$PGDATA'" + su - $PGUSER -c "$PGCTL status -D '$PGDATA'" ;; *) # Print help |