core/postgresql/postgresql
Jan Mette 93d9bd24fe
2010-03-14 15:48:48 +00:00

60 lines
1.4 KiB
Bash
Executable File

#!/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 -R postgres.postgres $PGROOT/data
su - postgres -c "/usr/bin/initdb $INITOPTS -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