mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
Update /contrib OS/X startup files, and move to a separate OS/X
directory. Mark Cotner and David Fetter
This commit is contained in:
119
contrib/start-scripts/osx/PostgreSQL
Executable file
119
contrib/start-scripts/osx/PostgreSQL
Executable file
@ -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"
|
Reference in New Issue
Block a user