summaryrefslogtreecommitdiff
path: root/contrib/start-scripts/freebsd
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/start-scripts/freebsd')
-rw-r--r--contrib/start-scripts/freebsd23
1 files changed, 15 insertions, 8 deletions
diff --git a/contrib/start-scripts/freebsd b/contrib/start-scripts/freebsd
index cee56956ce..528fc776c7 100644
--- a/contrib/start-scripts/freebsd
+++ b/contrib/start-scripts/freebsd
@@ -6,7 +6,7 @@
# Created through merger of the Linux start script by Ryan Kirkpatrick
# and the script in the FreeBSD ports collection.
-# $PostgreSQL: pgsql/contrib/start-scripts/freebsd,v 1.3 2003/11/29 19:51:35 pgsql Exp $
+# $PostgreSQL: pgsql/contrib/start-scripts/freebsd,v 1.4 2004/10/01 18:30:21 tgl Exp $
## EDIT FROM HERE
@@ -16,7 +16,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
@@ -27,24 +27,31 @@ PGLOG="$PGDATA/serverlog"
# 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"
+
+# Only start if we can find the postmaster.
test -x "$DAEMON" || exit 0
case $1 in
start)
- su -l $PGUSER -c "$DAEMON start -D '$PGDATA' -s -l $PGLOG"
+ su -l $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1
echo -n ' postgresql'
;;
stop)
- su -l $PGUSER -c "$DAEMON stop -D '$PGDATA' -s -m fast"
+ su -l $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast"
;;
restart)
- su -l $PGUSER -c "$DAEMON restart -D '$PGDATA' -s -m fast"
+ su -l $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w"
+ su -l $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1
;;
status)
- su -l $PGUSER -c "$DAEMON status -D '$PGDATA'"
+ su -l $PGUSER -c "$PGCTL status -D '$PGDATA'"
;;
*)
# Print help