summaryrefslogtreecommitdiff
path: root/testing/postgresql/postgresql.rcd
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-08-19 00:04:07 +0000
committerroot <root@rshg054.dnsready.net>2012-08-19 00:04:07 +0000
commitc512f9eb344575ac6bce0b13729c05e1760cd094 (patch)
tree8d60a9bd559a941bba52a67170900c159d2024eb /testing/postgresql/postgresql.rcd
parent948da5eabcbf8d74270e661d0730ba1c203913f5 (diff)
Sun Aug 19 00:04:07 UTC 2012
Diffstat (limited to 'testing/postgresql/postgresql.rcd')
-rwxr-xr-xtesting/postgresql/postgresql.rcd79
1 files changed, 79 insertions, 0 deletions
diff --git a/testing/postgresql/postgresql.rcd b/testing/postgresql/postgresql.rcd
new file mode 100755
index 000000000..f3600b30b
--- /dev/null
+++ b/testing/postgresql/postgresql.rcd
@@ -0,0 +1,79 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/postgresql
+
+# Default PGROOT if it wasn't defined in the conf.d file
+PGROOT=${PGROOT:-/var/lib/postgres}
+PGLOG=${PGLOG:-/var/log/postgresql.log}
+PGCTL_BIN=/usr/bin/pg_ctl
+PGCTL_ARGS=(-D "$PGROOT/data" -l "$PGLOG" -s -w)
+[[ $PGOPTS ]] && PGCTL_ARGS+=(-o "$PGOPTS")
+
+postgres_init() {
+ # initialization
+ if [[ ! -d "$PGROOT/data" ]]; then
+ mkdir -p "$PGROOT/data" && chown -R postgres:postgres "$PGROOT"
+ su - postgres -c "/usr/bin/initdb $INITOPTS -D '$PGROOT/data'"
+ fi
+ if [[ ! -e "$PGLOG" ]]; then
+ touch "$PGLOG"
+ chown postgres "$PGLOG"
+ fi
+}
+
+do_postgres() {
+ su - postgres -c "'$PGCTL_BIN' $(printf '%q ' "${PGCTL_ARGS[@]}" "$@")"
+}
+
+case $1 in
+ start)
+ postgres_init
+ stat_busy "Starting PostgreSQL"
+ if do_postgres start; then
+ add_daemon postgresql
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping PostgreSQL"
+ if do_postgres stop -m fast; then
+ rm_daemon postgresql
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ reload)
+ stat_busy "Reloading PostgreSQL"
+ if do_postgres reload; then
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ restart)
+ postgres_init
+ stat_busy "Restarting PostgreSQL"
+ if do_postgres restart -m fast; then
+ add_daemon postgresql
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ status)
+ stat_busy "Checking PostgreSQL status";
+ ck_status postgresql
+ ;;
+ *)
+ echo "usage: $0 {start|stop|reload|restart|status}"
+ exit 1
+esac