postgresql: improve rc service, INSTALL, add pam conf file.
--HG-- extra : convert_revision : d5fe81f0ac5134f796f8e9fce96e53c764fbfacf
This commit is contained in:
parent
888834d9c5
commit
e791f83899
5 changed files with 33 additions and 122 deletions
|
@ -5,18 +5,17 @@ post)
|
|||
cat << _EOF
|
||||
=====================================================================
|
||||
|
||||
Please note that to properly initialize the PostgreSQL server,
|
||||
a configuration file should be copied to /var/lib/postgresql from
|
||||
/usr/share/postgresql/postgresql.conf.sample.
|
||||
|
||||
To initialize the PostgreSQL data directory, use this:
|
||||
|
||||
$ sudo su -l postgres -c initdb -D /var/lib/postgresql/data
|
||||
|
||||
To start the server finally use:
|
||||
Please note that to properly start the PostgreSQL server,
|
||||
a sample configuration file should be copied to
|
||||
/var/lib/postgresql/data from
|
||||
/usr/share/postgresql/postgresql.conf.sample, edit it accordingly
|
||||
and use the following the command:
|
||||
|
||||
$ /etc/init.d/postgresql start
|
||||
|
||||
The configuration file for starting the service is available in
|
||||
/etc/conf.d/postgresql.
|
||||
|
||||
=====================================================================
|
||||
_EOF
|
||||
;;
|
||||
|
|
|
@ -3,6 +3,9 @@
|
|||
# PostgreSQL's Database Directory
|
||||
PGDATA="/var/lib/postgresql/data"
|
||||
|
||||
# PostgreSQL's log file.
|
||||
PGLOG="/var/log/postgresql.log"
|
||||
|
||||
# PostgreSQL User
|
||||
PGUSER="postgres"
|
||||
|
||||
|
@ -15,40 +18,3 @@ PGGROUP="postgres"
|
|||
# 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"
|
||||
|
||||
|
||||
# SERVER SHUTDOWN:
|
||||
# The server will receive 3 signals in the worst case:
|
||||
# 1. SIGTERM
|
||||
# This signals the server to ignore new connections and to
|
||||
# wait for all clients to end their transactions before shutting down.
|
||||
# Use WAIT_FOR_DISCONNECT to control how much time the clients
|
||||
# should have until the next signal is being sent.
|
||||
# 2. SIGINT
|
||||
# Tell the server to forcefully disconnect all clients.
|
||||
# Terminating a client results in a rollback of the open transactions for this client.
|
||||
# Use WAIT_FOR_CLEANUP to determine how much time the server has
|
||||
# for cleanup.
|
||||
# 3. SIGQUIT
|
||||
# This will terminate the server immediately and results in a recovery run for the next start.
|
||||
|
||||
# Wait for clients to disconnect
|
||||
WAIT_FOR_DISCONNECT=30
|
||||
|
||||
# Time the server has to clean up
|
||||
WAIT_FOR_CLEANUP=60
|
||||
|
||||
# Time the server has to quit (with a recover-run on next startup)
|
||||
# Set to 0 to deactivate it
|
||||
WAIT_FOR_QUIT=60
|
||||
|
||||
# Comment this out if you don't want to wait for the server to
|
||||
# startup before continuing. For example, if this server is a
|
||||
# PITR log shipping based replication standby
|
||||
WAIT_FOR_START="-w"
|
||||
|
||||
# If you have to export environment variables for the database process,
|
||||
# this can be done here.
|
||||
#
|
||||
# Example:
|
||||
# export R_HOME="/usr/lib/R"
|
||||
|
|
3
srcpkgs/postgresql/files/postgresql.pam
Normal file
3
srcpkgs/postgresql/files/postgresql.pam
Normal file
|
@ -0,0 +1,3 @@
|
|||
auth required pam_unix.so
|
||||
account required pam_unix.so
|
||||
session required pam_unix.so
|
|
@ -1,9 +1,7 @@
|
|||
#!/sbin/runscript
|
||||
# Copyright 1999-2009 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/www/viewcvs.gentoo.org/raw_cvs/gentoo-x86/dev-db/postgresql-server/files/postgresql.init-8.4,v 1.4 2010/01/26 22:01:21 patrick Exp $
|
||||
|
||||
opts="${opts} reload"
|
||||
: ${PGLOG:=/var/log/postgresql.log}
|
||||
extra_commands="reload"
|
||||
|
||||
depend()
|
||||
{
|
||||
|
@ -11,96 +9,39 @@ depend()
|
|||
provide postgresql
|
||||
}
|
||||
|
||||
checkconfig()
|
||||
start_pre()
|
||||
{
|
||||
if [ ! -d "$PGDATA" ] ; then
|
||||
eerror "Directory not found: $PGDATA"
|
||||
eerror "Please make sure that PGDATA points to the right path."
|
||||
return 1
|
||||
einfo "Creating PostgreSQL dbdir: ${PGDATA}"
|
||||
mkdir -p ${PGDATA} && \
|
||||
chown -R ${PGUSER}.${PGGROUP} ${PGDATA}
|
||||
einfo "Initializing PostgreSQL dbdir: ${PGDATA}"
|
||||
su -l ${PGUSER} -c "/usr/bin/initdb -D ${PGDATA}"
|
||||
fi
|
||||
if [ ! -e ${PGLOG} ]; then
|
||||
touch -f ${PGLOG}
|
||||
chown ${PGUSER} ${PGLOG}
|
||||
fi
|
||||
}
|
||||
|
||||
start()
|
||||
{
|
||||
checkconfig || return 1
|
||||
|
||||
ebegin "Starting PostgreSQL"
|
||||
|
||||
if [ -f "$PGDATA/postmaster.pid" ] ; then
|
||||
rm -f "$PGDATA/postmaster.pid"
|
||||
fi
|
||||
|
||||
local retval
|
||||
|
||||
su -l ${PGUSER} \
|
||||
-c "env PGDATA=\"${PGDATA}\" ${PG_EXTRA_ENV} pg_ctl \
|
||||
start ${WAIT_FOR_START} -o '--silent-mode=true ${PGOPTS}'"
|
||||
retval=$?
|
||||
[ $retval -ne 0 ] && eend $retval && return $retval
|
||||
|
||||
# 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
|
||||
# false reports the server as 'up'
|
||||
sleep 2
|
||||
if [ ! -f "$PGDATA/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
|
||||
|
||||
local pid=$(grep "^[0-9]\+" "$PGDATA/postmaster.pid")
|
||||
ps -p "${pid}" &> /dev/null
|
||||
su -l ${PGUSER} -c "/usr/bin/pg_ctl -D ${PGDATA} -l ${PGLOG} \
|
||||
-W start ${PGOPTS}"
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop()
|
||||
{
|
||||
ebegin "Stopping PostgreSQL (this can take up to \
|
||||
$(( ${WAIT_FOR_DISCONNECT} + ${WAIT_FOR_CLEANUP} )) seconds)"
|
||||
|
||||
local retval
|
||||
|
||||
su -l ${PGUSER} \
|
||||
-c "env PGDATA=\"${PGDATA}\" pg_ctl \
|
||||
stop -t ${WAIT_FOR_DISCONNECT} -m smart"
|
||||
|
||||
retval=$?
|
||||
[ $retval -eq 0 ] && eend $retval && return $retval
|
||||
|
||||
ewarn "Some clients did not disconnect within \
|
||||
${WAIT_FOR_DISCONNECT} seconds."
|
||||
ewarn "Going to shutdown the server anyway."
|
||||
|
||||
su -l ${PGUSER} -c "env PGDATA=\"${PGDATA}\" pg_ctl stop -m fast"
|
||||
retval=$?
|
||||
[ $retval -eq 0 ] && eend $retval && return $retval
|
||||
|
||||
if [ ${WAIT_FOR_QUIT} -eq 0 ] ; then
|
||||
eerror "Server did not shut down and sending the \
|
||||
SIGQUIT has been disabled."
|
||||
eend $retval
|
||||
return $retval
|
||||
fi
|
||||
|
||||
ewarn "Shutting down the server gracefully failed."
|
||||
ewarn "Forcing it to shutdown which leads to a recover-run \
|
||||
on next startup."
|
||||
|
||||
su -l ${PGUSER} -c "env PGDATA=\"${PGDATA}\" pg_ctl stop -m immediate"
|
||||
retval=$?
|
||||
[ $retval -eq 0 ] && eend $retval && return $retval
|
||||
|
||||
eerror "Forced shutdown failed!!! Something is wrong with your \
|
||||
system, please take care of it manually."
|
||||
ebegin "Stopping PostgreSQL"
|
||||
su -l ${PGUSER} -c "/usr/bin/pg_ctl -D ${PGDATA} -l ${PGLOG} -w stop"
|
||||
eend $?
|
||||
}
|
||||
|
||||
reload()
|
||||
{
|
||||
ebegin "Reloading PostgreSQL configuration"
|
||||
su -l ${PGUSER} -c "env PGDATA=\"${PGDATA}\" pg_ctl reload"
|
||||
su -l ${PGUSER} -c "/usr/bin/pg_ctl -D ${PGDATA} -l ${PGLOG} reload"
|
||||
eend $?
|
||||
}
|
||||
|
|
|
@ -54,4 +54,6 @@ post_install()
|
|||
${DESTDIR}/etc/conf.d/postgresql
|
||||
install -D -m755 ${FILESDIR}/postgresql.rc \
|
||||
${DESTDIR}/etc/init.d/postgresql
|
||||
install -D -m644 ${FILESDIR}/postgresql.pam \
|
||||
${DESTDIR}/etc/pam.d/postgresql
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue