#!/bin/sh ### BEGIN INIT INFO # Provides: postgresql # Required-Start: $local_fs $remote_fs $network $time # Required-Stop: $local_fs $remote_fs $network $time # Should-Start: $syslog # Should-Stop: $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: PostgreSQL RDBMS server ### END INIT INFO DAEMON=/usr/bin/postmaster DESC="PostgreSQL RDBMS server" datadir=`grep ^data_directory /etc/postgresql/postgresql.conf |sed -e "s#^.*= '##; s#'.*##"` if [ "$datadir" = "" ] ; then datadir=/etc/postgresql else if [ ! -e $datadir/postgresql.conf ] ; then if [ -e /etc/postgresql/postgresql.conf -a -e $datadir ] ; then ln -s /etc/postgresql/*.conf $datadir/ fi fi fi cd / start () { echo -n "Starting postgres server..." if pidof ${DAEMON} > /dev/null; then echo "already running." exit 0 fi touch /var/log/postgresql.log chown postgres /var/log/postgresql.log sudo -u postgres /usr/bin/pg_ctl start -w -D $datadir -s -l /var/log/postgresql.log if [ $? -eq 0 ]; then echo "done." else echo "failed." fi } stop () { echo -n "Stopping postgres server..." if ! pidof ${DAEMON} >/dev/null; then echo "not running." exit 0 fi sudo -u postgres /usr/bin/pg_ctl stop -w -D $datadir -m fast -s if [ $? -eq 0 ]; then echo "done." else if [ -f /etc/postgresql/postmaster.pid -a "$datadir" != "/etc/postgresql" ] ; then # Special case for transition sudo -u postgres /usr/bin/pg_ctl stop -w -D /etc/postgresql -m fast -s fi if ! pidof ${DAEMON} > /dev/null; then echo "done." else echo "failed." exit 1 fi fi } case "$1" in start) start ;; stop) stop ;; force-reload) stop start ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|force-reload|restart}" exit 1 ;; esac exit 0