diff options
Diffstat (limited to 'contrib/start-scripts/PostgreSQL.darwin')
-rwxr-xr-x | contrib/start-scripts/PostgreSQL.darwin | 26 |
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 |