postgresql/rc.postgresql

Mon, 28 Jan 2013 17:37:18 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 28 Jan 2013 17:37:18 +0100
changeset 758
a2c6460cfb16
permissions
-rw-r--r--

Correct socket error reporting improvement with IPv6 portable code,
after helpful recommendation by Saúl Ibarra Corretgé on OSips devlist.

michael@300 1 #!@l_prefix@/bin/openpkg rc
michael@300 2 ##
michael@300 3 ## rc.postgresql -- Run-Commands
michael@300 4 ##
michael@300 5
michael@300 6 %config
michael@300 7 postgresql_enable="$openpkg_rc_def"
michael@300 8 postgresql_flags=""
michael@300 9 postgresql_datadir="@l_prefix@/var/postgresql/db"
michael@300 10 postgresql_rundir="@l_prefix@/var/postgresql/run"
michael@300 11 postgresql_shut_mode="fast"
michael@300 12 postgresql_socket_inet="127.0.0.1"
michael@300 13 postgresql_socket_unix="@l_prefix@/var/postgresql/run"
michael@300 14 postgresql_log_prolog="true"
michael@300 15 postgresql_log_epilog="true"
michael@300 16 postgresql_log_numfiles="10"
michael@300 17 postgresql_log_minsize="1M"
michael@300 18 postgresql_log_complevel="9"
michael@300 19 postgresql_slony1="no"
michael@300 20
michael@300 21 %common
michael@300 22 postgresql_opts="-h $postgresql_socket_inet -k $postgresql_socket_unix"
michael@300 23 postgresql_opts="$postgresql_opts $postgresql_flags"
michael@300 24 postgresql_logfile="$postgresql_rundir/postgresql.log"
michael@300 25 postgresql_pidfile="$postgresql_datadir/postgresql.pid"
michael@300 26 postgresql_slony1_pidfile="$postgresql_rundir/slon.pid"
michael@300 27 postgresql_slony1_start () {
michael@300 28 ( . @l_prefix@/etc/postgresql/slony1.conf
michael@300 29 nohup @l_prefix@/bin/slon \
michael@300 30 -d "$SLON_SYNC_LOGLEVEL" -g "$SLON_SYNC_GROUPSIZE" \
michael@300 31 -s "$SLON_SYNC_INTERVAL" -t "$SLON_SYNC_TIMEOUT" \
michael@300 32 "$SLON_CLUSTER_NAME" \
michael@300 33 user="$SLON_CONNECT_USER" password="$SLON_CONNECT_PASS" \
michael@300 34 dbname="$SLON_CONNECT_DBNAME" host="$SLON_CONNECT_HOST"
michael@300 35 </dev/null >/dev/null 2>&1 &
michael@300 36 echo $! >$postgresql_slony1_pidfile
michael@300 37 ) >/dev/null 2>&1
michael@300 38 }
michael@300 39 postgresql_slony1_stop () {
michael@300 40 if [ -f $postgresql_slony1_pidfile ]; then
michael@300 41 kill -TERM `cat $postgresql_slony1_pidfile`
michael@300 42 rm -f $postgresql_slony1_pidfile
michael@300 43 fi
michael@300 44 }
michael@300 45 postgresql_ctl () {
michael@300 46 if [ -s $postgresql_pidfile ]; then
michael@300 47 kill -0 `head -1 $postgresql_pidfile` >/dev/null 2>&1
michael@300 48 if [ $? -ne 0 ]; then
michael@300 49 rm -f $postgresql_pidfile >/dev/null 2>&1 || true
michael@300 50 rm -f $postgresql_rundir/.s* >/dev/null 2>&1 || true
michael@300 51 fi
michael@300 52 fi
michael@300 53 cmd="$1"; shift
michael@300 54 @l_prefix@/bin/pg_ctl $cmd \
michael@300 55 -l $postgresql_logfile \
michael@300 56 -D $postgresql_datadir \
michael@300 57 ${1+"$@"}
michael@300 58 }
michael@300 59
michael@300 60 %status -u @l_rusr@ -o
michael@300 61 postgresql_usable="unknown"
michael@300 62 postgresql_active="no"
michael@300 63 rcService postgresql enable yes && \
michael@300 64 postgresql_ctl status >/dev/null && \
michael@300 65 postgresql_active="yes"
michael@300 66 echo "postgresql_enable=\"$postgresql_enable\""
michael@300 67 echo "postgresql_usable=\"$postgresql_usable\""
michael@300 68 echo "postgresql_active=\"$postgresql_active\""
michael@300 69
michael@300 70 %start -p 400 -u @l_rusr@
michael@300 71 rcService postgresql enable yes || exit 0
michael@300 72 rcService postgresql active yes && exit 0
michael@300 73 postgresql_ctl start -o "$postgresql_opts"
michael@300 74 if rcVarIsYes postgresql_slony1; then
michael@300 75 postgresql_slony1_start
michael@300 76 fi
michael@300 77
michael@300 78 %stop -p 600 -u @l_rusr@
michael@300 79 rcService postgresql enable yes || exit 0
michael@300 80 rcService postgresql active no && exit 0
michael@300 81 postgresql_ctl stop -m "$postgresql_shut_mode"
michael@300 82 if rcVarIsYes postgresql_slony1; then
michael@300 83 postgresql_slony1_stop
michael@300 84 fi
michael@300 85
michael@300 86 %restart -p 400 -u @l_rusr@
michael@300 87 rcService postgresql enable yes || exit 0
michael@300 88 rcService postgresql active no && exit 0
michael@300 89 postgresql_ctl restart -o "$postgresql_opts" -m "$postgresql_shut_mode"
michael@300 90 if rcVarIsYes postgresql_slony1; then
michael@300 91 postgresql_slony1_stop
michael@300 92 postgresql_slony1_start
michael@300 93 fi
michael@300 94
michael@300 95 %reload -p 400 -u @l_rusr@
michael@300 96 rcService postgresql enable yes || exit 0
michael@300 97 rcService postgresql active no && exit 0
michael@300 98 postgresql_ctl reload
michael@300 99
michael@300 100 %daily -u @l_rusr@
michael@300 101 rcService postgresql enable yes || exit 0
michael@300 102 shtool rotate -f \
michael@300 103 -n ${postgresql_log_numfiles} -s ${postgresql_log_minsize} -d -c \
michael@300 104 -z ${postgresql_log_complevel} -m 600 -o @l_rusr@ -g @l_rgrp@ \
michael@300 105 -P "$postgresql_log_prolog" \
michael@300 106 -E "$postgresql_log_epilog" \
michael@300 107 $postgresql_logfile
michael@300 108

mercurial