#! /bin/bash
#
# NOTE TO SYSTEM ADMINISTRATORS #
# To stop postgresql running, do
#   ln -sf /bin/false /usr/lib/postgresql/bin/can_i_run
# To re-enable it, do
#   rm /usr/lib/postgresql/bin/can_i_run

startup () {
        touch ${POSTGRES_LOG:=/var/log/postgres.log}
        chown postgres.postgres $POSTGRES_LOG
        su - postgres -c /usr/lib/postgresql/bin/postgresql-startup
	# set file-max kernel parameter
	. /etc/postgresql/postmaster.conf
	fmaxfile=/proc/sys/kernel/file-max
	if [ ! -r $fmaxfile ]
	then
		fmaxfile=/proc/sys/kernel/fs/file-max
		if [ ! -r $fmaxfile ]
		then
			fmaxfile=/proc/sys/fs/file-max
			if [ ! -r $fmaxfile ]
			then
				fmaxfile=
			fi
		fi
	fi

	if [ -n "$fmaxfile" ]
	then
		fmax=`cat $fmaxfile`
		if [ $fmax -lt ${KERNEL_FILE_MAX:=1032} ]
		then
			echo ${KERNEL_FILE_MAX} > $fmaxfile
		fi
	fi
}

POSTMASTER=/usr/lib/postgresql/bin/postmaster
. /etc/postgresql/postmaster.conf
PGDATA=${POSTGRES_DATA:-/var/lib/postgres/data}
export PGDATA

case "$1" in
    start)
        startup
        ;;
    stop)
        echo "Stopping PostgreSQL database: postmaster"
        start-stop-daemon --stop --verbose --exec ${POSTMASTER} || exit 0
	echo "."
        ;;
    restart)
        echo "Restarting PostgreSQL database: postmaster"
        start-stop-daemon --stop --oknodo --verbose --exec ${POSTMASTER}
        sleep 3
        startup
	echo "."
        ;;
    force-reload | reload)
        /usr/lib/postgresql/bin/pg_ctl reload -D ${PGDATA}
        ;;
    *)
        echo "Usage: /etc/init.d/postgresql {start|stop|restart|reload|force-reload}"
        exit 1
        ;;
esac

exit 0

