diff options
Diffstat (limited to 'dev-db/postgresql/files/postgresql.init-8.0')
-rw-r--r-- | dev-db/postgresql/files/postgresql.init-8.0 | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/dev-db/postgresql/files/postgresql.init-8.0 b/dev-db/postgresql/files/postgresql.init-8.0 new file mode 100644 index 0000000..60a2237 --- /dev/null +++ b/dev-db/postgresql/files/postgresql.init-8.0 @@ -0,0 +1,56 @@ +#!/sbin/runscript +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-db/postgresql/files/postgresql.init-8.0,v 1.4 2007/07/11 08:46:51 dev-zero Exp $ + +opts="${opts} reload" + +depend() { + use net +} + +checkconfig() { + if [ ! -d "$PGDATA" ] ; then + eerror "Directory not found: $PGDATA" + eerror "Please make sure that PGDATA points to the right path." + eerror "You can run 'emerge postgresql --config' to setup a new database cluster." + return 1 + fi +} + +start() { + checkconfig || return 1 + + ebegin "Starting PostgreSQL" + + if [ -f "$PGDATA/postmaster.pid" ] ; then + rm -f "$PGDATA/postmaster.pid" + fi + + start-stop-daemon --start \ + --pidfile "${PGDATA}/postmaster.pid" \ + --chuid ${PGUSER}:${PGGROUP} \ + --exec /usr/bin/postmaster \ + -- \ + -D "${PGDATA}" \ + --silent-mode=true \ + ${PGOPTS} + + eend $? +} + +stop() { + ebegin "Stopping PostgreSQL" + # Note: we have to do --oknodo here, otherwise it will always fail + # when there are open transactions. This bug has been corrected + # in baselayout-1.13.0_alpha8. + start-stop-daemon --stop --pidfile "${PGDATA}/postmaster.pid" \ + --retry -TERM/${WAIT_FOR_DISCONNECT}/-INT/${WAIT_FOR_CLEANUP}/-QUIT --oknodo + eend $? +} + +reload() { + ebegin "Reloading PostgreSQL configuration" + start-stop-daemon --stop --pidfile "${PGDATA}/postmaster.pid" --signal HUP --oknodo + eend $? +} |