From 5268963f3a9f976e9646950b60f99567912f8e3b Mon Sep 17 00:00:00 2001 From: frank Date: Mon, 30 Jan 2012 23:21:37 +0100 Subject: [PATCH] committing changes in /etc after emerge run Package changes: +dev-db/postgresql-server-9.1.1 --- .etckeeper | 4 + conf.d/postgresql-9.1 | 63 +++++++++ eselect/postgresql/slots/9.1/server | 1 + init.d/postgresql-9.1 | 192 ++++++++++++++++++++++++++++ pam.d/postgresql | 6 + 5 files changed, 266 insertions(+) create mode 100644 conf.d/postgresql-9.1 create mode 100644 eselect/postgresql/slots/9.1/server create mode 100755 init.d/postgresql-9.1 create mode 100644 pam.d/postgresql diff --git a/.etckeeper b/.etckeeper index 7ccea85..14bd747 100755 --- a/.etckeeper +++ b/.etckeeper @@ -153,6 +153,7 @@ maybe chmod 0644 './conf.d/ntpd' maybe chmod 0644 './conf.d/openvpn' maybe chmod 0644 './conf.d/pciparm' maybe chmod 0644 './conf.d/portmap' +maybe chmod 0644 './conf.d/postgresql-9.1' maybe chmod 0640 './conf.d/postgrey' maybe chmod 0644 './conf.d/pydoc-2.7' maybe chmod 0644 './conf.d/pydoc-3.1' @@ -407,6 +408,7 @@ maybe chmod 0755 './eselect/postgresql/slots' maybe chmod 0755 './eselect/postgresql/slots/9.1' maybe chmod 0644 './eselect/postgresql/slots/9.1/base' maybe chmod 0644 './eselect/postgresql/slots/9.1/docs' +maybe chmod 0644 './eselect/postgresql/slots/9.1/server' maybe chmod 0644 './etc-update.conf' maybe chmod 0755 './etckeeper' maybe chmod 0755 './etckeeper/commit.d' @@ -601,6 +603,7 @@ maybe chmod 0755 './init.d/php-fpm' maybe chmod 0755 './init.d/policyd-weight' maybe chmod 0755 './init.d/portmap' maybe chmod 0755 './init.d/postfix' +maybe chmod 0755 './init.d/postgresql-9.1' maybe chmod 0755 './init.d/postgrey' maybe chmod 0755 './init.d/procfs' maybe chmod 0755 './init.d/proftpd' @@ -866,6 +869,7 @@ maybe chmod 0644 './pam.d/newusers' maybe chmod 0644 './pam.d/other' maybe chmod 0644 './pam.d/passwd' maybe chmod 0644 './pam.d/pop' +maybe chmod 0644 './pam.d/postgresql' maybe chmod 0644 './pam.d/samba' maybe chmod 0644 './pam.d/saslauthd' maybe chmod 0644 './pam.d/screen' diff --git a/conf.d/postgresql-9.1 b/conf.d/postgresql-9.1 new file mode 100644 index 0000000..5bdd3d5 --- /dev/null +++ b/conf.d/postgresql-9.1 @@ -0,0 +1,63 @@ +# 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" + +# How long to wait for server to start in seconds +START_TIMEOUT=60 + +# Ignore new connections and wait for clients to disconnect from server before +# shutting down. +# Set NICE_QUIT to "NO" to disable. NICE_TIMEOUT in seconds. +NICE_QUIT="YES" +NICE_TIMEOUT=60 + +# 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_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 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-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/server b/eselect/postgresql/slots/9.1/server new file mode 100644 index 0000000..cc2c76b --- /dev/null +++ b/eselect/postgresql/slots/9.1/server @@ -0,0 +1 @@ +postgres_ebuilds="${postgres_ebuilds} postgresql-server-9.1.1" diff --git a/init.d/postgresql-9.1 b/init.d/postgresql-9.1 new file mode 100755 index 0000000..a5051a3 --- /dev/null +++ b/init.d/postgresql-9.1 @@ -0,0 +1,192 @@ +#!/sbin/runscript +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +opts="${opts} reload" + +depend() { + use net + provide postgresql + provide postgresql-9.1 +} + +checkconfig() { + if [ -z ${DATA_DIR} ] ; then + eerror "DATA_DIR not set" + eerror "HINT: Did you not 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 + 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 + if [ -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 "HINT: 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-9.1/bin/pg_ctl \ + start ${WAIT_FOR_START} -t ${START_TIMEOUT} -s -D ${DATA_DIR} \ + -o '-D ${PGDATA} --data-directory=${DATA_DIR} --silent-mode=true ${PGOPTS}'" + 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 + + # 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 $retval +} + +stop() { + ebegin "Stopping PostgreSQL (this can take up to $(( ${NICE_TIMEOUT} + ${RUDE_TIMEOUT} + ${FORCE_TIMEOUT} )) seconds)" + + local retval + + if [ "${NICE_QUIT}" != "NO" ] ; then + su -l postgres \ + -c "env PGPORT=\"${PGPORT}\" ${PG_EXTRA_ENV} \ + /usr/lib/postgresql-9.1/bin/pg_ctl \ + stop ${WAIT_FOR_STOP} -t ${NICE_TIMEOUT} -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-9.1/bin/pg_ctl \ + stop ${WAIT_FOR_STOP} -t ${RUDE_TIMEOUT} -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-9.1/bin/pg_ctl \ + stop ${WAIT_FOR_STOP} -t ${FORCE_TIMEOUT} -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-9.1/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-9.1/bin/pg_ctl \ + status -D ${DATA_DIR}" + eend $? +} diff --git a/pam.d/postgresql b/pam.d/postgresql new file mode 100644 index 0000000..b94d487 --- /dev/null +++ b/pam.d/postgresql @@ -0,0 +1,6 @@ +# File autogenerated by pamd_mimic in pam eclass + + +auth include system-auth +account include system-auth +session include system-auth -- 2.39.5