Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/start-scripts/PostgreSQL.darwin')
-rwxr-xr-xcontrib/start-scripts/PostgreSQL.darwin26
1 files changed, 16 insertions, 10 deletions
diff --git a/contrib/start-scripts/PostgreSQL.darwin b/contrib/start-scripts/PostgreSQL.darwin
index e953a3091b9..3e4b86a7f3b 100755
--- a/contrib/start-scripts/PostgreSQL.darwin
+++ b/contrib/start-scripts/PostgreSQL.darwin
@@ -48,7 +48,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"
# the logfile path and name (NEEDS to be writeable by PGUSER)
@@ -68,8 +68,13 @@ ROTATESEC="604800"
# 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"
# The apache log rotation utility
LOGUTIL="/usr/sbin/rotatelogs"
@@ -80,27 +85,28 @@ StartService () {
if [ "${POSTGRESQLSERVER:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Starting PostgreSQL database server"
if [ "${ROTATELOGS}" = "1" ]; then
- sudo -u $PGUSER sh -c "${DAEMON} start -D ${PGDATA} -s | ${LOGUTIL} ${PGLOG} ${ROTATESEC} &"
+ sudo -u $PGUSER sh -c "${DAEMON} -D '${PGDATA}' | ${LOGUTIL} '${PGLOG}' ${ROTATESEC} &"
else
- sudo -u $PGUSER $DAEMON start -D "$PGDATA" -s -l $PGLOG
+ sudo -u $PGUSER sh -c "${DAEMON} -D '${PGDATA}' &" >>$PGLOG 2>&1
fi
fi
}
StopService () {
ConsoleMessage "Stopping PostgreSQL database server"
- sudo -u $PGUSER $DAEMON stop -D "$PGDATA" -s -m fast
+ sudo -u $PGUSER $PGCTL stop -D "$PGDATA" -s -m fast
}
RestartService () {
if [ "${POSTGRESQLSERVER:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Restarting PostgreSQL database server"
+ # should match StopService:
+ sudo -u $PGUSER $PGCTL stop -D "$PGDATA" -s -m fast
+ # should match StartService:
if [ "${ROTATELOGS}" = "1" ]; then
-# StopService
-# StartService
- sudo -u $PGUSER sh -c "${DAEMON} restart -D ${PGDATA} -s -m fast | ${LOGUTIL} ${PGLOG} ${ROTATESEC} &"
+ sudo -u $PGUSER sh -c "${DAEMON} -D '${PGDATA}' | ${LOGUTIL} '${PGLOG}' ${ROTATESEC} &"
else
- sudo -u $PGUSER $DAEMON restart -D "$PGDATA" -s -m fast
+ sudo -u $PGUSER sh -c "${DAEMON} -D '${PGDATA}' &" >>$PGLOG 2>&1
fi
else
StopService