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  | 
