public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Aaron Swenson" <titanofold@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/pgsql-patches:initscripts commit in: /
Date: Sun, 20 Mar 2011 00:39:14 +0000 (UTC)	[thread overview]
Message-ID: <858da0576419b108f058d3ed6eef46f3cc40999c.titanofold@gentoo> (raw)

commit:     858da0576419b108f058d3ed6eef46f3cc40999c
Author:     Aaron W. Swenson <titanofold <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 20 00:37:42 2011 +0000
Commit:     Aaron Swenson <titanofold <AT> gentoo <DOT> org>
CommitDate: Sun Mar 20 00:37:42 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/pgsql-patches.git;a=commit;h=858da057

Initial commit of initscript and related conf file for 8.2.

---
 postgresql.confd |   57 ++++++++++++++++++
 postgresql.init  |  173 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 230 insertions(+), 0 deletions(-)

diff --git a/postgresql.confd b/postgresql.confd
new file mode 100644
index 0000000..e306c96
--- /dev/null
+++ b/postgresql.confd
@@ -0,0 +1,57 @@
+# Which port and socket to bind PostgreSQL
+PGPORT="5432"
+
+# Allow *_TIMEOUT to run its course.
+# Disable timeouts by changing to '-W' (capital W)
+WAIT_FOR_START="-w"
+WAIT_FOR_STOP="-w"
+
+# Ignore new connections and wait for clients to disconnect from server before
+# shutting down.
+# Set NICE_QUIT to "NO" to disable.
+NICE_QUIT="YES"
+
+# Forecfully disconnect clients from server and shut down. This is performed
+# after NICE_QUIT. Terminating a client results in a rollback of open
+# transactions for that client.
+# Set RUDE_QUIT to "NO" to disable.
+RUDE_QUIT="YES"
+
+# If the server still fails to shutdown, you can force it to quit by setting
+# this to yes and a recover-run will execute on the next startup.
+# Set FORCE_QUIT to "YES" to enable.
+FORCE_QUIT="NO"
+
+# Extra options to run postmaster with, e.g.:
+# -N is the maximal number of client connections
+# -B is the number of shared buffers and has to be at least 2x the value for -N
+# Please read the man-page to postmaster for more options. Many of
+# these options can be set directly in the configuration file.
+#PGOPTS="-N 512 -B 1024"
+
+# Pass extra environment variables. If you have to export environment
+# variables for the database process, this can be done here.
+# Don't forget to escape quotes.
+#PG_EXTRA_ENV="PGPASSFILE=\"/path/to/.pgpass\""
+
+##############################################################################
+#
+# The following values should not be arbitrarily changed.
+# emerge --config dev-db/postgresql-server:8.2 uses these values to
+# determine where to create the data directory, where to place the
+# configuration files and any additional options you'd like to pass to initdb.
+#
+# The init script also uses these variables to inform pg_ctl where to find
+# the same data and configuration files.
+#
+##############################################################################
+
+# Location of configuration files
+PGDATA="/etc/postgresql-8.2/"
+
+# Where the data directory is located/to be created
+DATA_DIR="/var/lib/postgresql/8.2/data"
+
+# Additional options to pass to initdb.
+# See 'man initdb' for available options.
+#PG_INITDB_OPTS="--locale=en_US.UTF-8"

diff --git a/postgresql.init b/postgresql.init
new file mode 100644
index 0000000..d0ef87c
--- /dev/null
+++ b/postgresql.init
@@ -0,0 +1,173 @@
+#!/sbin/runscript
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-db/postgresql-server/files/postgresql.init,v 1.1 2010/06/04 14:18:52 patrick Exp $
+
+opts="${opts} reload"
+
+depend() {
+	use net
+	provide postgresql
+	provide postgresql-8.2
+}
+
+checkconfig() {
+	if [ ! -d $DATA_DIR ] ; then
+		eerror "Directory not found: $DATA_DIR"
+		eerror "Please make sure that DATA_DIR points to the right path."
+		eerror "You can run 'emerge --config dev-db/postgresql-server:8.2' to setup a new"
+		eerror "database cluster."
+		return 1
+	elif [ ! -f ${PGDATA%/}/postgresql.conf ] ; then
+		eerror "File not found: ${PGDATA%/}/postgresql.conf"
+		eerror "You may need to run:"
+		eerror "cp ${DATA_DIR%/}/postgresql.conf ${PGDATA%/}/postgresql.conf"
+		return 1
+	elif [ ! -f ${PGDATA%/}/pg_hba.conf ] ; then
+		eerror "File not found: ${PGDATA%/}/pg_hba.conf"
+		eerror "You may need to run:"
+		eerror "cp ${DATA_DIR%/}/pg_hba.conf ${PGDATA%/}/pg_hba.conf"
+		return 1
+	elif [ ! -f ${PGDATA%/}/pg_ident.conf ] ; then
+		eerror "File not found: ${PGDATA%/}/pg_ident.conf"
+		eerror "You may need to run:"
+		eerror "cp ${DATA_DIR%/}/pg_ident.conf ${PGDATA%/}/pg_ident.conf"
+		return 1
+	elif [ -e /var/run/postgresql/.s.PGSQL.${PGPORT} ] ; then
+		eerror "Socket conflict."
+		eerror "A server is already listening on:"
+		eerror "/var/run/postgresql/.s.PGSQL.${PGPORT}."
+		eerror "Change PGPORT to listen on a different socket."
+		return 1
+	fi
+}
+
+start() {
+	checkconfig || return 1
+
+	ebegin "Starting PostgreSQL"
+
+	if [ -f ${DATA_DIR%/}/postmaster.pid ] ; then
+		rm -f ${DATA_DIR%/}/postmaster.pid
+	fi
+
+	local retval
+
+	su -l postgres \
+		-c "env PGPORT=\"${PGPORT}\" ${PG_EXTRA_ENV} \
+		/usr/lib/postgresql-8.2/bin/pg_ctl \
+		start ${WAIT_FOR_START} -s -D ${DATA_DIR} -o \
+		'-D ${PGDATA} --data-directory=${DATA_DIR} --silent-mode=true ${PGOPTS}'"
+	retval=$?
+
+	if [ $retval -ne 0 ] ; then
+		eend $retval
+		return $retval
+	fi
+
+	# The following is to catch the case of an already running server
+	# in which pg_ctl doesn't know to which server it connected to and
+	# falsely reports the server as 'up'
+	if [ ! -f ${DATA_DIR}/postmaster.pid ] ; then
+		eerror "The PID file doesn't exist but pg_ctl reported a running server."
+		eerror "Please check whether there is another server running on the same port or read the log-file."
+		eend 1
+		return 1
+	fi
+
+	eend $?
+}
+
+stop() {
+	ebegin "Stopping PostgreSQL (this can take up to 90 seconds)"
+
+	local retval
+
+	if [ "${NICE_QUIT}" != "NO" ] ; then
+		su -l postgres \
+			-c "env PGPORT=\"${PGPORT}\" ${PG_EXTRA_ENV} \
+			/usr/lib/postgresql-8.2/bin/pg_ctl \
+			stop ${WAIT_FOR_STOP} -s -D ${DATA_DIR} -m smart"
+		retval=$?
+
+		if [ $retval -eq 0 ] ; then
+			eend $retval
+			return $retval
+		fi
+
+		ewarn "Shutting down the server gracefully failed."
+		ewarn "Probably because some clients did not disconnect within ${NICE_TIMEOUT} seconds."
+	else
+		ewarn "NICE_QUIT disabled."
+		ewarn "You really should have it enabled."
+	fi
+
+	if [ "${RUDE_QUIT}" != "NO" ] ; then
+		ewarn "RUDE_QUIT enabled."
+		ewarn "Going to shutdown the server anyway."
+
+		su -l postgres \
+			-c "env PGPORT=\"${PGPORT}\" ${PG_EXTRA_ENV} \
+			/usr/lib/postgresql-8.2/bin/pg_ctl \
+			stop ${WAIT_FOR_STOP} -s -D ${DATA_DIR} -m fast"
+		retval=$?
+
+		if [ $retval -eq 0 ] ; then
+			eend $retval
+			return $retval
+		fi
+
+		eerror "Failed to shutdown server."
+	else
+		ewarn "RUDE_QUIT disabled."
+	fi
+
+	if [ "${FORCE_QUIT}" = "YES" ] ; then
+		ewarn "FORCE_QUIT enabled."
+		ewarn "Forcing server to shutdown."
+		ewarn "A recover-run will be executed on the next startup."
+
+		su -l postgres \
+			-c "env PGPORT=\"${PGPORT}\" ${PG_EXTRA_ENV} \
+			/usr/lib/postgresql-8.2/bin/pg_ctl \
+			stop ${WAIT_FOR_STOP} -s -D ${DATA_DIR} -m immediate"
+
+		retval=$?
+
+		if [ $retval -eq 0 ] ; then
+			ewarn "Server forced down."
+			eend $retval
+			return $retval
+		fi
+
+		eerror "Forced shutdown failed!!!"
+		eerror "Something is wrong with your system."
+		eerror "Please take care of it manually."
+		eerror "Unable to stop server."
+		eend $retval
+		return $retval
+	else
+		ewarn "FORCE_QUIT disabled."
+		eerror "Unable to shutdown server."
+		eend 1
+		return 1
+	fi
+}
+
+reload() {
+	ebegin "Reloading PostgreSQL configuration"
+	su -l postgres \
+		-c "env PGPORT=\"${PGPORT}\" ${PG_EXTRA_ENV} \
+		/usr/lib/postgresql-8.2/bin/pg_ctl \
+		reload -s -D ${DATA_DIR}"
+	eend $?
+}
+
+status() {
+	ebegin "Reloading PostgreSQL configuration"
+	su -l postgres \
+		-c "env PGPORT=\"${PGPORT}\" ${PG_EXTRA_ENV} \
+		/usr/lib/postgresql-8.2/bin/pg_ctl \
+		status -D ${DATA_DIR}"
+	eend $?
+}



             reply	other threads:[~2011-03-20  0:39 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-20  0:39 Aaron Swenson [this message]
  -- strict thread matches above, loose matches on Subject: below --
2011-03-20  1:36 [gentoo-commits] proj/pgsql-patches:initscripts commit in: / Aaron Swenson
2011-03-23  3:19 Aaron Swenson
2011-03-24 22:41 Aaron Swenson
2011-03-26  2:13 Aaron Swenson
2011-03-26 22:34 Aaron Swenson
2011-03-26 23:25 Aaron Swenson
2011-09-18 19:26 Aaron Swenson
2011-09-18 19:56 Aaron Swenson
2011-11-30 20:26 Aaron Swenson
2011-11-30 20:26 Aaron Swenson
2011-12-24 13:47 Aaron Swenson
2011-12-24 13:47 Aaron Swenson
2012-05-24 19:23 Aaron Swenson
2012-05-24 19:23 Aaron Swenson
2012-05-24 19:58 Aaron Swenson
2012-05-24 19:58 Aaron Swenson
2012-05-24 19:58 Aaron Swenson
2012-05-24 19:58 Aaron Swenson
2012-05-27 14:00 Aaron Swenson
2012-06-08 15:04 Aaron Swenson
2012-06-08 15:04 Aaron Swenson
2012-06-08 15:04 Aaron Swenson
2012-06-08 15:04 Aaron Swenson
2012-06-08 15:04 Aaron Swenson
2012-11-11 14:49 Aaron Swenson
2013-01-19 20:50 Aaron Swenson
2013-02-03 15:22 Aaron Swenson
2013-02-08 13:01 Aaron Swenson
2013-02-08 14:46 Aaron Swenson
2013-03-09 15:01 Aaron Swenson
2013-06-09  2:36 Aaron Swenson
2013-06-09  2:36 Aaron Swenson
2013-08-21  0:59 Aaron Swenson
2014-04-23  1:52 Mike Gilbert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=858da0576419b108f058d3ed6eef46f3cc40999c.titanofold@gentoo \
    --to=titanofold@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox