summaryrefslogtreecommitdiff
path: root/contrib/start-scripts/osx/PostgreSQL
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2007-05-30 18:10:38 +0000
committerBruce Momjian <bruce@momjian.us>2007-05-30 18:10:38 +0000
commit87a9473276db0d9cfbf6822dd21f66245040be87 (patch)
tree5e5370fcb73fef41fde121e49933145ff85ce0f5 /contrib/start-scripts/osx/PostgreSQL
parent44af16f6b7f3f8d0c64b14f8f2339818c3a98b26 (diff)
downloadpostgresql-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-xcontrib/start-scripts/osx/PostgreSQL119
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"