Mon, 28 Jan 2013 17:37:18 +0100
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 |