#!/bin/sh
##
-# PotgreSQL RDBMS Server
+# PostgreSQL RDBMS Server
##
# PostgreSQL boot time startup script for Darwin/Mac OS X. To install, change
# directory it is in. So you'll end up with these two files:
#
# /Library/StartupItems/PostgreSQL/PostgreSQL
-# /Library/StartupItems/PostgreSQLStartupParameters.plist
+# /Library/StartupItems/PostgreSQL/StartupParameters.plist
#
# Next, add this line to the /etc/hostconfig file:
#
#
# 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
+prefix="/usr/local/pgsql"
# Data directory
PGDATA="/usr/local/pgsql/data"
# Who to run pg_ctl as, should be "postgres".
-PGUSER=postgres
+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"
-# Where to keep a log file
-PGLOG="$PGDATA/serverlog"
################################################################################
## STOP EDITING HERE
# What to use to start up the postmaster
DAEMON="$prefix/bin/pg_ctl"
+# The apache log rotation utility
+LOGUTIL="/usr/sbin/rotatelogs"
+
. /etc/rc.common
StartService () {
if [ "${POSTGRESQLSERVER:=-NO-}" = "-YES-" ]; then
- ConsoleMessage "Starting PostgreSQL database server"
- sudo -u $PGUSER $DAEMON start -D "$PGDATA" -s -l $PGLOG
+ ConsoleMessage "Starting PostgreSQL database server"
+ if [ "${ROTATELOGS}" = "1" ]; then
+ sudo -u $PGUSER sh -c "${DAEMON} start -D ${PGDATA} -s | ${LOGUTIL} ${PGLOG} ${ROTATESEC} &"
+ else
+ sudo -u $PGUSER $DAEMON start -D "$PGDATA" -s -l $PGLOG
+ fi
fi
}
RestartService () {
if [ "${POSTGRESQLSERVER:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Restarting PostgreSQL database server"
- sudo -u $PGUSER $DAEMON restart -D "$PGDATA" -s -m fast
+ if [ "${ROTATELOGS}" = "1" ]; then
+# StopService
+# StartService
+ sudo -u $PGUSER sh -c "${DAEMON} restart -D ${PGDATA} -s -m fast | ${LOGUTIL} ${PGLOG} ${ROTATESEC} &"
+ else
+ sudo -u $PGUSER $DAEMON restart -D "$PGDATA" -s -m fast
+ fi
else
- StopService
+ StopService
fi
}
-{
- 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";
- };
-}
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>Description</key>
+ <string>PostgreSQL Database Server</string>
+ <key>Messages</key>
+ <dict>
+ <key>start</key>
+ <string>Starting PostgreSQL database server</string>
+ <key>stop</key>
+ <string>Stopping PostgreSQL database server</string>
+ <key>restart</key>
+ <string>Restarting PostgreSQL database server</string>
+ </dict>
+ <key>OrderPreference</key>
+ <string>Late</string>
+ <key>Provides</key>
+ <array>
+ <string>PostgreSQL</string>
+ </array>
+ <key>Requires</key>
+ <array>
+ <string>Disks</string>
+ <string>Resolver</string>
+ </array>
+ <key>Uses</key>
+ <array>
+ <string>NFS</string>
+ <string>NetworkTime</string>
+ </array>
+</dict>
+</plist>