rc.postgresql 3.7 KB

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