#!/bin/bash . /etc/rc.conf . /etc/rc.d/functions . /etc/conf.d/postgresql case "$1" in start) stat_busy "Starting PostgreSQL" # initialization if [ ! `egrep '^postgres:' /etc/group` ]; then stat_busy "Adding postgres group" groupadd -g 88 postgres stat_done fi if [ ! `egrep '^postgres:' /etc/passwd` ]; then stat_busy "Adding postgres user" useradd -u 88 -g postgres -d $PGROOT -s /bin/bash postgres [ -d $PGROOT ] && chown -R postgres.postgres $PGROOT stat_done fi if [ ! -d $PGROOT ]; then mkdir -p $PGROOT/data && chown postgres.postgres $PGROOT/data su - postgres -c "/usr/bin/initdb -D $PGROOT/data" fi if [ ! -e /var/log/postgresql.log ]; then touch /var/log/postgresql.log chown postgres /var/log/postgresql.log fi # start the process su - postgres -c \ "/usr/bin/pg_ctl -D $PGROOT/data -l /var/log/postgresql.log -W start" if [ $? -gt 0 ]; then stat_fail else add_daemon postgresql stat_done fi ;; stop) stat_busy "Stopping PostgreSQL" su - postgres -c \ "/usr/bin/pg_ctl -D $PGROOT/data -l /var/log/postgresql.log -w stop" if [ $? -gt 0 ]; then stat_fail else rm_daemon postgresql stat_done fi ;; restart) $0 stop sleep 3 $0 start ;; *) echo "usage: $0 {start|stop|restart}" esac exit 0