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