rc.mimedefang 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #!@l_prefix@/lib/openpkg/bash @l_prefix@/etc/rc
  2. ##
  3. ## rc.mimedefang -- Run-Commands
  4. ##
  5. %config
  6. mimedefang_enable="$openpkg_rc_def"
  7. mimedefang_flags="-X"
  8. mimedefang_filter="@l_prefix@/etc/mimedefang/mimedefang-filter"
  9. mimedefang_mx_socket="@l_prefix@/var/mimedefang/mimedefang-multiplexor.sock"
  10. mimedefang_socket="@l_prefix@/var/mimedefang/mimedefang.sock"
  11. mimedefang_mx_embed_perl="yes"
  12. mimedefang_max_requests="200"
  13. mimedefang_mx_min="2"
  14. mimedefang_mx_busy="600"
  15. mimedefang_syslog_stats="yes"
  16. mimedefang_syslog_facility="mail"
  17. # NOTICE: mimedefang is multi-threaded and therefore cannot use
  18. # OSSP fsl -- you must use syslog. Therefore the rotate section
  19. # below will not work unless you define this variable:
  20. mimedefang_log_file=""
  21. mimedefang_log_prolog="true"
  22. mimedefang_log_epilog="true"
  23. mimedefang_log_numfiles="10"
  24. mimedefang_log_minsize="1M"
  25. %common
  26. mimedefang_pidfile="@l_prefix@/var/mimedefang/mimedefang.pid"
  27. mimedefang_mx_pidfile="@l_prefix@/var/mimedefang/mimedefang-multiplexor.pid"
  28. mimedefang_signal1 () {
  29. [ -f $2 ] && kill -$1 `head -1 $2`
  30. }
  31. mimedefang_signal () {
  32. local rc
  33. mimedefang_signal1 $1 $mimedefang_pidfile
  34. rc=$?
  35. mimedefang_signal1 $1 $mimedefang_mx_pidfile && [ $rc -eq 0 ]
  36. }
  37. %status -u @l_rusr@ -o
  38. mimedefang_usable="unknown"
  39. mimedefang_active="no"
  40. rcService mimedefang enable yes && \
  41. mimedefang_signal 0 && mimedefang_active="yes"
  42. echo "mimedefang_enable=\"$mimedefang_enable\""
  43. echo "mimedefang_usable=\"$mimedefang_usable\""
  44. echo "mimedefang_active=\"$mimedefang_active\""
  45. %start -u @l_rusr@
  46. rcService mimedefang enable yes || exit 0
  47. rcService mimedefang active yes && exit 0
  48. [ -f $mimedefang_filter ] || exit 0
  49. cmd="@l_prefix@/bin/mimedefang-multiplexor"
  50. cmd="$cmd -p $mimedefang_mx_pidfile"
  51. if [ ".$mimedefang_mx_embed_perl" = .yes ] ; then
  52. cmd="$cmd -E"
  53. fi
  54. if [ ".$mimedefang_syslog_stats" = .yes ] ; then
  55. cmd="$cmd -l -S $mimedefang_syslog_facility"
  56. fi
  57. cmd="$cmd -F $mimedefang_filter"
  58. cmd="$cmd -m $mimedefang_mx_min"
  59. cmd="$cmd -x $mimedefang_max_requests"
  60. cmd="$cmd -s $mimedefang_mx_socket"
  61. eval $cmd
  62. @l_prefix@/bin/mimedefang \
  63. -P $mimedefang_pidfile \
  64. -m $mimedefang_mx_socket \
  65. -p $mimedefang_socket \
  66. $mimedefang_flags
  67. %stop -u @l_rusr@
  68. rcService mimedefang enable yes || exit 0
  69. rcService mimedefang active no && exit 0
  70. mimedefang_signal TERM
  71. rm -f $mimedefang_pidfile 2>/dev/null || true
  72. rm -f $mimedefang_mx_pidfile 2>/dev/null || true
  73. %restart -u @l_rusr@
  74. rcService mimedefang enable yes || exit 0
  75. rcService mimedefang active no && exit 0
  76. rc mimedefang stop
  77. sleep 2
  78. rc mimedefang start
  79. %daily -u @l_rusr@
  80. rcService mimedefang enable yes || exit 0
  81. [ ".$mimedefang_log_file" = . ] && exit 0
  82. shtool rotate -f \
  83. -n ${mimedefang_log_numfiles} -s ${mimedefang_log_minsize} -d \
  84. -z ${mimedefang_log_complevel} -o @l_rusr@ -g @l_rusr@ -m 644 \
  85. -P "${mimedefang_log_prolog}" \
  86. -E "${mimedefang_log_epilog}; rc mimedefang restart" \
  87. $mimedefang_log_file