diff options
author | Bruce Momjian <bruce@momjian.us> | 2007-05-30 18:10:38 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2007-05-30 18:10:38 +0000 |
commit | 87a9473276db0d9cfbf6822dd21f66245040be87 (patch) | |
tree | 5e5370fcb73fef41fde121e49933145ff85ce0f5 /contrib/start-scripts/osx/PostgreSQL | |
parent | 44af16f6b7f3f8d0c64b14f8f2339818c3a98b26 (diff) | |
download | postgresql-87a9473276db0d9cfbf6822dd21f66245040be87.tar.gz |
Update /contrib OS/X startup files, and move to a separate OS/X
directory.
Mark Cotner and David Fetter
Diffstat (limited to 'contrib/start-scripts/osx/PostgreSQL')
-rwxr-xr-x | contrib/start-scripts/osx/PostgreSQL | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/contrib/start-scripts/osx/PostgreSQL b/contrib/start-scripts/osx/PostgreSQL new file mode 100755 index 0000000000..66c11093cf --- /dev/null +++ b/contrib/start-scripts/osx/PostgreSQL @@ -0,0 +1,119 @@ +#!/bin/sh + +## +# PostgreSQL RDBMS Server +## + +# PostgreSQL boot time startup script for Darwin/Mac OS X. To install, change +# the "prefix", "PGDATA", "PGUSER", and "PGLOG" variables below as +# necessary. Next, create a new directory, "/Library/StartupItems/PostgreSQL". +# Then copy this script and the accompanying "StartupParameters.plist" file +# into that directory. The name of this script file *must* be the same as the +# directory it is in. So you'll end up with these two files: +# +# /Library/StartupItems/PostgreSQL/PostgreSQL +# /Library/StartupItems/PostgreSQL/StartupParameters.plist +# +# Next, add this line to the /etc/hostconfig file: +# +# POSTGRESQL=-YES- +# +# The startup bundle will now be ready to go. To prevent this script from +# starting PostgreSQL at system startup, simply change that line in +# /etc/hostconfig back to: +# +# POSTGRESQL=-NO- +# +# For more information on Darwin/Mac OS X startup bundles, see this article: +# +# http://www.opensource.apple.com/projects/documentation/howto/html/SystemStarter_HOWTO.html +# +# Created by David Wheeler, 2002. + +# modified by Ray Aspeitia 12-03-2003 : +# added log rotation script to db startup +# modified StartupParameters.plist "Provides" parameter to make it easier to +# start and stop with the SystemStarter utitlity + +# use the below command in order to correctly start/stop/restart PG with log rotation script: +# SystemStarter [start|stop|restart] PostgreSQL + +################################################################################ +## EDIT FROM HERE +################################################################################ + +# Installation prefix +prefix="/usr/local/pgsql" + +# Data directory +PGDATA="/usr/local/pgsql/data" + +# Who to run the postmaster as, usually "postgres". (NOT "root") +PGUSER="postgres" + +# the logfile path and name (NEEDS to be writeable by PGUSER) +PGLOG="${PGDATA}/logs/logfile" + +# do you want to rotate the log files, 1=true 0=false +ROTATELOGS=1 + +# logfile rotate in seconds +ROTATESEC="604800" + + +################################################################################ +## STOP EDITING HERE +################################################################################ + +# The path that is to be used for the script +PATH=/usr/local/pgsql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin + +# 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" + +. /etc/rc.common + +StartService () { + if [ "${POSTGRESQL:=-NO-}" = "-YES-" ]; then + ConsoleMessage "Starting PostgreSQL database server" + cd /Users/postgres + if [ "${ROTATELOGS}" = "1" ]; then + sudo -u $PGUSER sh -c "${DAEMON} -D '${PGDATA}' | ${LOGUTIL} '${PGLOG}' ${ROTATESEC} &" + else + sudo -u $PGUSER sh -c "${DAEMON} -D '${PGDATA}' &" >>$PGLOG 2>&1 + fi + fi +} + +StopService () { + ConsoleMessage "Stopping PostgreSQL database server" + cd /Users/postgres + sudo -u $PGUSER $PGCTL stop -D "$PGDATA" -s -m fast +} + +RestartService () { + if [ "${POSTGRESQL:=-NO-}" = "-YES-" ]; then + ConsoleMessage "Restarting PostgreSQL database server" + # should match StopService: + cd /Users/postgres + sudo -u $PGUSER $PGCTL stop -D "$PGDATA" -s -m fast + # should match StartService: + if [ "${ROTATELOGS}" = "1" ]; then + sudo -u $PGUSER sh -c "${DAEMON} -D '${PGDATA}' | ${LOGUTIL} '${PGLOG}' ${ROTATESEC} &" + else + sudo -u $PGUSER sh -c "${DAEMON} -D '${PGDATA}' &" >>$PGLOG 2>&1 + fi + else + StopService + fi +} + +RunService "$1" |