]> Frank Brehm's Git Trees - config/bruni/etc.git/commitdiff
saving uncommitted changes in /etc prior to emerge run
authorfrank <frank@bruni.home.brehm-online.com>
Wed, 15 Feb 2012 17:13:19 +0000 (18:13 +0100)
committerFrank Brehm <root@bruni.home.brehm-online.com>
Wed, 15 Feb 2012 17:13:19 +0000 (18:13 +0100)
conf.d/._cfg0000_postgresql-9.1 [new file with mode: 0644]
eselect/postgresql/slots/9.1/._cfg0000_server [new file with mode: 0644]
init.d/._cfg0000_postgresql-9.1 [new file with mode: 0755]

diff --git a/conf.d/._cfg0000_postgresql-9.1 b/conf.d/._cfg0000_postgresql-9.1
new file mode 100644 (file)
index 0000000..54cf5cc
--- /dev/null
@@ -0,0 +1,58 @@
+# Which port and socket to bind PostgreSQL
+PGPORT="5432"
+
+# How long to wait for server to start in seconds
+START_TIMEOUT=10
+
+# NICE_QUIT ignores new connections and wait for clients to disconnect from
+# server before shutting down. NICE_TIMEOUT in seconds determines how long to
+# wait for this to succeed.
+NICE_TIMEOUT=60
+
+# Forecfully disconnect clients from server and shut down. This is performed
+# after NICE_QUIT. Terminated client connections have their open transactions
+# rolled back.
+# Set RUDE_QUIT to "NO" to disable. RUDE_TIMEOUT in seconds.
+RUDE_QUIT="YES"
+RUDE_TIMEOUT=30
+
+# 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_TIMEOUT in seconds.
+FORCE_QUIT="NO"
+FORCE_TIMEOUT=2
+
+# 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:9.1' uses these values to
+# determine where to create the data directory, where to place the
+# configuration files, and any additional options to pass to initdb.
+#
+# The initscript also uses these variables to inform PostgreSQL where to find
+# its data directory and configuration files.
+#
+##############################################################################
+
+# Location of configuration files
+PGDATA="/etc/postgresql-9.1/"
+
+# Where the data directory is located/to be created
+DATA_DIR="/var/lib/postgresql/9.1/data"
+
+# Additional options to pass to initdb.
+# See `man initdb' for available options.
+#PG_INITDB_OPTS="--locale=en_US.UTF-8"
diff --git a/eselect/postgresql/slots/9.1/._cfg0000_server b/eselect/postgresql/slots/9.1/._cfg0000_server
new file mode 100644 (file)
index 0000000..7a0a9c0
--- /dev/null
@@ -0,0 +1 @@
+postgres_ebuilds="${postgres_ebuilds} postgresql-server-9.1.2-r2"
diff --git a/init.d/._cfg0000_postgresql-9.1 b/init.d/._cfg0000_postgresql-9.1
new file mode 100755 (executable)
index 0000000..0137691
--- /dev/null
@@ -0,0 +1,141 @@
+#!/sbin/runscript
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+extra_started_commands="reload"
+
+get_config() {
+    [ -f ${PGDATA}/postgresql.conf ] || return 1
+
+    eval echo $(sed -e 's:#.*::' ${PGDATA}/postgresql.conf | awk '$1 == "'$1'" { print $2 == "=" ? $3 : $2 }')
+}
+
+depend() {
+    use net
+    provide postgresql
+
+    if [ "$(get_config log_destination)" = "syslog" ]; then
+               use logger
+    fi
+}
+
+configured_port=$(get_config port)
+: ${configured_port:=${PGPORT}}
+socket_path=$(get_config unix_socket_path)
+: ${socket_path:=/var/run/postgresql}
+
+checkconfig() {
+       # Check that DATA_DIR has been set and exists
+       if [ -z ${DATA_DIR} ] ; then
+               eerror "DATA_DIR not set"
+               eerror "HINT: Perhaps you need to update /etc/conf.d/postgresql-9.1"
+       fi
+       if [ ! -d ${DATA_DIR} ] ; then
+               eerror "Directory not found: ${DATA_DIR}"
+               eerror "HINT: Ensure that DATA_DIR points to the right path."
+               eerror "HINT: Or perhaps you need to create the database cluster:"
+               eerror "    emerge --config dev-db/postgresql-server:9.1"
+               return 1
+       fi
+
+       # Check for the existence of and PostgreSQL's ability to read the config files.
+       if [ ! -f ${PGDATA}/postgresql.conf -o \
+               ! -f ${PGDATA}/pg_hba.conf -o ! -f ${PGDATA}/pg_ident.conf ] ; then
+               eerror "The following file(s) were not found in ${PGDATA}:"
+               [ ! -f ${PGDATA}/postgresql.conf ] && eerror "    postgresql.conf"
+               [ ! -f ${PGDATA}/pg_hba.conf ] && eerror "    pg_hba.conf"
+               [ ! -f ${PGDATA}/pg_ident.conf ] && eerror "    pg_ident.conf"
+               eerror "HINT: Try:"
+               eerror "    mv ${DATA_DIR}/*.conf ${PGDATA}"
+               return 1
+       fi
+
+       local file
+       local failed
+       for file in pg_hba pg_ident postgresql ; do
+               file="${PGDATA}/${file}.conf"
+               su postgres -c "test -r ${file}" || failed="${file} ${failed}"
+       done
+       if [ -n "${failed}" ] ; then
+               eerror "The following file(s) are not readable by 'postgres':"
+               local x
+               for x in ${failed} ; do
+                       eerror "    ${x}"
+               done
+               eerror "HINT: Try: 'chmod 644 ${PGDATA}/*.conf'"
+               return 1
+       fi
+
+       checkpath -d -m 0770 -o postgres:postgres ${socket_path}
+       if [ -e ${socket_path}/.s.PGSQL.${configured_port} ] ; then
+               eerror "Socket conflict."
+               eerror "A server is already listening on:"
+               eerror "    ${socket_path}/.s.PGSQL.${configured_port}"
+               eerror "HINT: Change PGPORT to listen on a different socket."
+               return 1
+       fi
+}
+
+start() {
+       checkconfig || return 1
+
+       ebegin "Starting PostgreSQL"
+
+       rm -f ${DATA_DIR}/postmaster.pid
+
+       local extraenv
+       local x
+       for x in ${PG_EXTRA_ENV} ; do
+               extraenv="${extraenv} --env ${x}"
+       done
+
+       start-stop-daemon --start \
+               --user postgres \
+               --exec /usr/lib/postgresql-9.1/bin/postgres \
+               --env "PGPORT=${configured_port}" \
+               ${extraenv} \
+               --wait $((${START_TIMEOUT}*1000)) \
+               --pidfile ${DATA_DIR}/postmaster.pid \
+               -- -D ${PGDATA} --data-directory=${DATA_DIR} --silent-mode=true ${PGOPTS}
+       local retval=$?
+
+       if [ $retval -ne 0 ] ; then
+               eerror "Check the PostgreSQL 9.1 log for a detailed explanation of the above error."
+               eend $retval
+               return $retval
+       fi
+
+       eend $retval
+}
+
+stop() {
+       local seconds=$(( ${NICE_TIMEOUT} + ${RUDE_TIMEOUT} + ${FORCE_TIMEOUT} ))
+       ebegin "Stopping PostgreSQL (this can take up to ${seconds} seconds)"
+
+       local retval
+       local retries=SIGTERM/${NICE_TIMEOUT}
+
+       if [ "${RUDE_QUIT}" != "NO" ] ; then
+               einfo "RUDE_QUIT enabled."
+               retries="${retries}/SIGINT/${RUDE_TIMEOUT}"
+       fi
+       if [ "${FORCE_QUIT}" = "YES" ] ; then
+               einfo "FORCE_QUIT enabled."
+               ewarn "A recover-run might be executed on next startup."
+               retries="${retries}/SIGQUIT/${FORCE_TIMEOUT}"
+       fi
+
+       start-stop-daemon --stop \
+               --exec /usr/lib/postgresql-9.1/bin/postgres \
+               --retry ${retries} \
+               --pidfile ${DATA_DIR}/postmaster.pid
+
+       eend
+}
+
+reload() {
+       ebegin "Reloading PostgreSQL configuration"
+       kill -HUP $(head -n1 ${DATA_DIR}/postmaster.pid)
+       eend $?
+}