I've simplified the Darwin/Mac OS X startup script I submitted earlier

in the year. This version has only the two files required by the Darwin
startup bundle design. Plus the sh script now uses Darwin-standard
functions to start up PostgreSQL, and it checks for the presence of a
variable in /etc/hostconfig, as do other Darwin startup scripts.

I suggest that a new directory be created,
contrib/start-scripts/darwin, and that these two files be put into it.
Folks who want to use the script can read the comments inside it to
figure out how to use it.

David Wheeler
This commit is contained in:
Bruce Momjian 2002-12-09 21:26:09 +00:00
parent 3bca6ca61c
commit b842726fc7
2 changed files with 95 additions and 0 deletions

View File

@ -0,0 +1,82 @@
#!/bin/sh
##
# PotgreSQL 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/PostgreSQLStartupParameters.plist
#
# Next, add this line to the /etc/hostconfig file:
#
# POSTGRESQLSERVER=-YES-
#
# The startup bundle will now be read to go. To prevent this script from
# starting PostgreSQL at system startup, simply change that line in
# /etc/hostconfig to:
#
# POSTGRESQLSERVER=-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.
################################################################################
## EDIT FROM HERE
################################################################################
# Installation prefix
prefix=/usr/local/pgsql
# Data directory
PGDATA="/usr/local/pgsql/data"
# Who to run pg_ctl as, should be "postgres".
PGUSER=postgres
# Where to keep a log file
PGLOG="$PGDATA/serverlog"
################################################################################
## STOP EDITING HERE
################################################################################
# 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"
. /etc/rc.common
StartService () {
if [ "${POSTGRESQLSERVER:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Starting PostgreSQL database server"
sudo -u $PGUSER $DAEMON start -D "$PGDATA" -s -l $PGLOG
fi
}
StopService () {
ConsoleMessage "Stopping PostgreSQL database server"
sudo -u $PGUSER $DAEMON stop -D "$PGDATA" -s -m fast
}
RestartService () {
if [ "${POSTGRESQLSERVER:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Restarting PostgreSQL database server"
sudo -u $PGUSER $DAEMON restart -D "$PGDATA" -s -m fast
else
StopService
fi
}
RunService "$1"

View File

@ -0,0 +1,13 @@
{
Description = "PostgreSQL Database Server";
Provides = ("postgres database");
Requires = ("Disks", "Resolver");
Uses = ("NFS", "Network Time");
OrderPreference = "None";
Messages =
{
start = "Starting PostgreSQL database server";
stop = "Stopping PostgreSQL database server";
restart = "Restarting PostgreSQL database server";
};
}