postgresql/contrib/start-scripts/PostgreSQL.darwin

111 lines
3.4 KiB
Plaintext
Raw Normal View History

#!/bin/sh
##
I wanted to submit some changes to the bundled postgres startup script for Mac OS X. I added calls to utilize the bundled apache rotatelogs script in the DB startup for log rotation. Also modified startup parameters file to allow using the "SystemStarter" utility to start/stop/restart postgres with a rotating log file. The script credits David Wheeler, 2002. I wrote him a message about the changes an he suggested I post them here. I explain some of the changes below. Not sure how to submit the changes. I have 3 files, "PostgreSQL" script, "StartupParameters.plist" file, "pg_startupscript.diff" file. The diff file was run against the original "PostgreSQL" script file. I'll try attaching them to this message. If they get filtered I can resend if needed. Thanks. Ray A. ------------------------------------ 1) Changed the "Provides" parameter in StartupParameters.plist to "PostgreSQL" from "postgres database" simply for ease of typing. It seems that the SystemStarter utility uses the "Provides" value if you want to control the script. This way I did not have to enclose it in quotes on commandline. The modified StartupParameters.plist is now an XML document also. 2) For the startup script I added 2 user modifiable variables: # do you want to rotate the log files, 1=true 0=false ROTATELOGS=1 # logfile rotate in seconds ROTATESEC="604800" I also added a non modifiable variable: # The apache log rotation utility LOGUTIL="/usr/sbin/rotatelogs" I modified the StartService and RestartService functions to execute the new commands if the user wants log rotation. Ray Aspeitia
2004-03-09 09:59:13 +08:00
# 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
I wanted to submit some changes to the bundled postgres startup script for Mac OS X. I added calls to utilize the bundled apache rotatelogs script in the DB startup for log rotation. Also modified startup parameters file to allow using the "SystemStarter" utility to start/stop/restart postgres with a rotating log file. The script credits David Wheeler, 2002. I wrote him a message about the changes an he suggested I post them here. I explain some of the changes below. Not sure how to submit the changes. I have 3 files, "PostgreSQL" script, "StartupParameters.plist" file, "pg_startupscript.diff" file. The diff file was run against the original "PostgreSQL" script file. I'll try attaching them to this message. If they get filtered I can resend if needed. Thanks. Ray A. ------------------------------------ 1) Changed the "Provides" parameter in StartupParameters.plist to "PostgreSQL" from "postgres database" simply for ease of typing. It seems that the SystemStarter utility uses the "Provides" value if you want to control the script. This way I did not have to enclose it in quotes on commandline. The modified StartupParameters.plist is now an XML document also. 2) For the startup script I added 2 user modifiable variables: # do you want to rotate the log files, 1=true 0=false ROTATELOGS=1 # logfile rotate in seconds ROTATESEC="604800" I also added a non modifiable variable: # The apache log rotation utility LOGUTIL="/usr/sbin/rotatelogs" I modified the StartService and RestartService functions to execute the new commands if the user wants log rotation. Ray Aspeitia
2004-03-09 09:59:13 +08:00
# /Library/StartupItems/PostgreSQL/StartupParameters.plist
#
# Next, add this line to the /etc/hostconfig file:
#
# POSTGRESQLSERVER=-YES-
#
2003-11-12 11:27:26 +08:00
# The startup bundle will now be ready to go. To prevent this script from
# starting PostgreSQL at system startup, simply change that line in
2003-11-12 11:27:26 +08:00
# /etc/hostconfig back 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.
I wanted to submit some changes to the bundled postgres startup script for Mac OS X. I added calls to utilize the bundled apache rotatelogs script in the DB startup for log rotation. Also modified startup parameters file to allow using the "SystemStarter" utility to start/stop/restart postgres with a rotating log file. The script credits David Wheeler, 2002. I wrote him a message about the changes an he suggested I post them here. I explain some of the changes below. Not sure how to submit the changes. I have 3 files, "PostgreSQL" script, "StartupParameters.plist" file, "pg_startupscript.diff" file. The diff file was run against the original "PostgreSQL" script file. I'll try attaching them to this message. If they get filtered I can resend if needed. Thanks. Ray A. ------------------------------------ 1) Changed the "Provides" parameter in StartupParameters.plist to "PostgreSQL" from "postgres database" simply for ease of typing. It seems that the SystemStarter utility uses the "Provides" value if you want to control the script. This way I did not have to enclose it in quotes on commandline. The modified StartupParameters.plist is now an XML document also. 2) For the startup script I added 2 user modifiable variables: # do you want to rotate the log files, 1=true 0=false ROTATELOGS=1 # logfile rotate in seconds ROTATESEC="604800" I also added a non modifiable variable: # The apache log rotation utility LOGUTIL="/usr/sbin/rotatelogs" I modified the StartService and RestartService functions to execute the new commands if the user wants log rotation. Ray Aspeitia
2004-03-09 09:59:13 +08:00
# 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
I wanted to submit some changes to the bundled postgres startup script for Mac OS X. I added calls to utilize the bundled apache rotatelogs script in the DB startup for log rotation. Also modified startup parameters file to allow using the "SystemStarter" utility to start/stop/restart postgres with a rotating log file. The script credits David Wheeler, 2002. I wrote him a message about the changes an he suggested I post them here. I explain some of the changes below. Not sure how to submit the changes. I have 3 files, "PostgreSQL" script, "StartupParameters.plist" file, "pg_startupscript.diff" file. The diff file was run against the original "PostgreSQL" script file. I'll try attaching them to this message. If they get filtered I can resend if needed. Thanks. Ray A. ------------------------------------ 1) Changed the "Provides" parameter in StartupParameters.plist to "PostgreSQL" from "postgres database" simply for ease of typing. It seems that the SystemStarter utility uses the "Provides" value if you want to control the script. This way I did not have to enclose it in quotes on commandline. The modified StartupParameters.plist is now an XML document also. 2) For the startup script I added 2 user modifiable variables: # do you want to rotate the log files, 1=true 0=false ROTATELOGS=1 # logfile rotate in seconds ROTATESEC="604800" I also added a non modifiable variable: # The apache log rotation utility LOGUTIL="/usr/sbin/rotatelogs" I modified the StartService and RestartService functions to execute the new commands if the user wants log rotation. Ray Aspeitia
2004-03-09 09:59:13 +08:00
prefix="/usr/local/pgsql"
# Data directory
PGDATA="/usr/local/pgsql/data"
# Who to run pg_ctl as, should be "postgres".
I wanted to submit some changes to the bundled postgres startup script for Mac OS X. I added calls to utilize the bundled apache rotatelogs script in the DB startup for log rotation. Also modified startup parameters file to allow using the "SystemStarter" utility to start/stop/restart postgres with a rotating log file. The script credits David Wheeler, 2002. I wrote him a message about the changes an he suggested I post them here. I explain some of the changes below. Not sure how to submit the changes. I have 3 files, "PostgreSQL" script, "StartupParameters.plist" file, "pg_startupscript.diff" file. The diff file was run against the original "PostgreSQL" script file. I'll try attaching them to this message. If they get filtered I can resend if needed. Thanks. Ray A. ------------------------------------ 1) Changed the "Provides" parameter in StartupParameters.plist to "PostgreSQL" from "postgres database" simply for ease of typing. It seems that the SystemStarter utility uses the "Provides" value if you want to control the script. This way I did not have to enclose it in quotes on commandline. The modified StartupParameters.plist is now an XML document also. 2) For the startup script I added 2 user modifiable variables: # do you want to rotate the log files, 1=true 0=false ROTATELOGS=1 # logfile rotate in seconds ROTATESEC="604800" I also added a non modifiable variable: # The apache log rotation utility LOGUTIL="/usr/sbin/rotatelogs" I modified the StartService and RestartService functions to execute the new commands if the user wants log rotation. Ray Aspeitia
2004-03-09 09:59:13 +08:00
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/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# What to use to start up the postmaster
DAEMON="$prefix/bin/pg_ctl"
I wanted to submit some changes to the bundled postgres startup script for Mac OS X. I added calls to utilize the bundled apache rotatelogs script in the DB startup for log rotation. Also modified startup parameters file to allow using the "SystemStarter" utility to start/stop/restart postgres with a rotating log file. The script credits David Wheeler, 2002. I wrote him a message about the changes an he suggested I post them here. I explain some of the changes below. Not sure how to submit the changes. I have 3 files, "PostgreSQL" script, "StartupParameters.plist" file, "pg_startupscript.diff" file. The diff file was run against the original "PostgreSQL" script file. I'll try attaching them to this message. If they get filtered I can resend if needed. Thanks. Ray A. ------------------------------------ 1) Changed the "Provides" parameter in StartupParameters.plist to "PostgreSQL" from "postgres database" simply for ease of typing. It seems that the SystemStarter utility uses the "Provides" value if you want to control the script. This way I did not have to enclose it in quotes on commandline. The modified StartupParameters.plist is now an XML document also. 2) For the startup script I added 2 user modifiable variables: # do you want to rotate the log files, 1=true 0=false ROTATELOGS=1 # logfile rotate in seconds ROTATESEC="604800" I also added a non modifiable variable: # The apache log rotation utility LOGUTIL="/usr/sbin/rotatelogs" I modified the StartService and RestartService functions to execute the new commands if the user wants log rotation. Ray Aspeitia
2004-03-09 09:59:13 +08:00
# The apache log rotation utility
LOGUTIL="/usr/sbin/rotatelogs"
. /etc/rc.common
StartService () {
if [ "${POSTGRESQLSERVER:=-NO-}" = "-YES-" ]; then
I wanted to submit some changes to the bundled postgres startup script for Mac OS X. I added calls to utilize the bundled apache rotatelogs script in the DB startup for log rotation. Also modified startup parameters file to allow using the "SystemStarter" utility to start/stop/restart postgres with a rotating log file. The script credits David Wheeler, 2002. I wrote him a message about the changes an he suggested I post them here. I explain some of the changes below. Not sure how to submit the changes. I have 3 files, "PostgreSQL" script, "StartupParameters.plist" file, "pg_startupscript.diff" file. The diff file was run against the original "PostgreSQL" script file. I'll try attaching them to this message. If they get filtered I can resend if needed. Thanks. Ray A. ------------------------------------ 1) Changed the "Provides" parameter in StartupParameters.plist to "PostgreSQL" from "postgres database" simply for ease of typing. It seems that the SystemStarter utility uses the "Provides" value if you want to control the script. This way I did not have to enclose it in quotes on commandline. The modified StartupParameters.plist is now an XML document also. 2) For the startup script I added 2 user modifiable variables: # do you want to rotate the log files, 1=true 0=false ROTATELOGS=1 # logfile rotate in seconds ROTATESEC="604800" I also added a non modifiable variable: # The apache log rotation utility LOGUTIL="/usr/sbin/rotatelogs" I modified the StartService and RestartService functions to execute the new commands if the user wants log rotation. Ray Aspeitia
2004-03-09 09:59:13 +08:00
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
}
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"
I wanted to submit some changes to the bundled postgres startup script for Mac OS X. I added calls to utilize the bundled apache rotatelogs script in the DB startup for log rotation. Also modified startup parameters file to allow using the "SystemStarter" utility to start/stop/restart postgres with a rotating log file. The script credits David Wheeler, 2002. I wrote him a message about the changes an he suggested I post them here. I explain some of the changes below. Not sure how to submit the changes. I have 3 files, "PostgreSQL" script, "StartupParameters.plist" file, "pg_startupscript.diff" file. The diff file was run against the original "PostgreSQL" script file. I'll try attaching them to this message. If they get filtered I can resend if needed. Thanks. Ray A. ------------------------------------ 1) Changed the "Provides" parameter in StartupParameters.plist to "PostgreSQL" from "postgres database" simply for ease of typing. It seems that the SystemStarter utility uses the "Provides" value if you want to control the script. This way I did not have to enclose it in quotes on commandline. The modified StartupParameters.plist is now an XML document also. 2) For the startup script I added 2 user modifiable variables: # do you want to rotate the log files, 1=true 0=false ROTATELOGS=1 # logfile rotate in seconds ROTATESEC="604800" I also added a non modifiable variable: # The apache log rotation utility LOGUTIL="/usr/sbin/rotatelogs" I modified the StartService and RestartService functions to execute the new commands if the user wants log rotation. Ray Aspeitia
2004-03-09 09:59:13 +08:00
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
I wanted to submit some changes to the bundled postgres startup script for Mac OS X. I added calls to utilize the bundled apache rotatelogs script in the DB startup for log rotation. Also modified startup parameters file to allow using the "SystemStarter" utility to start/stop/restart postgres with a rotating log file. The script credits David Wheeler, 2002. I wrote him a message about the changes an he suggested I post them here. I explain some of the changes below. Not sure how to submit the changes. I have 3 files, "PostgreSQL" script, "StartupParameters.plist" file, "pg_startupscript.diff" file. The diff file was run against the original "PostgreSQL" script file. I'll try attaching them to this message. If they get filtered I can resend if needed. Thanks. Ray A. ------------------------------------ 1) Changed the "Provides" parameter in StartupParameters.plist to "PostgreSQL" from "postgres database" simply for ease of typing. It seems that the SystemStarter utility uses the "Provides" value if you want to control the script. This way I did not have to enclose it in quotes on commandline. The modified StartupParameters.plist is now an XML document also. 2) For the startup script I added 2 user modifiable variables: # do you want to rotate the log files, 1=true 0=false ROTATELOGS=1 # logfile rotate in seconds ROTATESEC="604800" I also added a non modifiable variable: # The apache log rotation utility LOGUTIL="/usr/sbin/rotatelogs" I modified the StartService and RestartService functions to execute the new commands if the user wants log rotation. Ray Aspeitia
2004-03-09 09:59:13 +08:00
StopService
fi
}
RunService "$1"