diff options
Diffstat (limited to 'abs/extra/postgresql-libs/postgresql')
-rwxr-xr-x | abs/extra/postgresql-libs/postgresql | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/abs/extra/postgresql-libs/postgresql b/abs/extra/postgresql-libs/postgresql new file mode 100755 index 0000000..b00289e --- /dev/null +++ b/abs/extra/postgresql-libs/postgresql @@ -0,0 +1,59 @@ +#!/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 + 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 |