rc.mimedefang 3.2 KB

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