#!/sbin/runscript # Copyright 1999-2006 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.3 2006/12/13 07:59:07 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 local env_vars for var in ${!ENV_*} ; do env_vars="${env_vars} -e ${!var}" ; done start-stop-daemon --start \ --pidfile "${PGDATA}/postmaster.pid" \ --chuid ${PGUSER}:${PGGROUP} \ --exec /usr/bin/postmaster \ ${env_vars} -- \ -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 $? }