rc.sendmail 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. #!@l_prefix@/lib/openpkg/bash @l_prefix@/etc/rc
  2. ##
  3. ## rc.sendmail -- Run-Commands
  4. ## Copyright (c) 2000-2001 Cable & Wireless Deutschland GmbH
  5. ## Copyright (c) 2000-2001 Ralf S. Engelschall <rse@engelschall.com>
  6. ##
  7. ## Permission to use, copy, modify, and distribute this software for
  8. ## any purpose with or without fee is hereby granted, provided that
  9. ## the above copyright notice and this permission notice appear in all
  10. ## copies.
  11. ##
  12. ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  13. ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  14. ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  15. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
  16. ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  17. ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  18. ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  19. ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  20. ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  21. ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  22. ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  23. ## SUCH DAMAGE.
  24. ##
  25. %config
  26. mta_name="sendmail"
  27. mta_aliases_file="@l_prefix@/etc/sendmail/t.aliases"
  28. mta_aliases_update="cd @l_prefix@/etc/sendmail && make t.aliases.db"
  29. sendmail_enable="yes"
  30. sendmail_flags_in="-bd"
  31. sendmail_flags_out="-q60s"
  32. sendmail_flags_msp="-Ac -q60s"
  33. sendmail_flags=""
  34. sendmail_pidfile_in="@l_prefix@/var/sendmail/sendmail.in.pid"
  35. sendmail_pidfile_out="@l_prefix@/var/sendmail/sendmail.out.pid"
  36. sendmail_pidfile_msp="@l_prefix@/var/sendmail/clientmqueue/sendmail.msp.pid"
  37. sendmail_log_prolog="true"
  38. sendmail_log_epilog="true"
  39. sendmail_log_numfiles="10"
  40. sendmail_log_minsize="1M"
  41. sendmail_log_complevel="9"
  42. %common
  43. sendmail_start () {
  44. if opServiceEnabled sendmail; then
  45. @l_prefix@/sbin/sendmail $sendmail_flags_in $sendmail_flags \
  46. -OPidFile=$sendmail_pidfile_in
  47. @l_prefix@/sbin/sendmail $sendmail_flags_out $sendmail_flags \
  48. -OPidFile=$sendmail_pidfile_out
  49. @l_prefix@/sbin/sendmail $sendmail_flags_msp $sendmail_flags \
  50. -OPidFile=$sendmail_pidfile_msp
  51. fi
  52. }
  53. sendmail_signal () {
  54. if opServiceEnabled sendmail; then
  55. if [ -f $sendmail_pidfile_in ]; then
  56. rpmtool signal -c -d2 \
  57. -p `head -1 $sendmail_pidfile_in` "$@"
  58. rm -f $sendmail_pidfile_in
  59. fi
  60. if [ -f $sendmail_pidfile_out ]; then
  61. rpmtool signal -c -d2 \
  62. -p `head -1 $sendmail_pidfile_out` "$@"
  63. rm -f $sendmail_pidfile_out
  64. fi
  65. if [ -f $sendmail_pidfile_msp ]; then
  66. rpmtool signal -c -d2 \
  67. -p `head -1 $sendmail_pidfile_msp` "$@"
  68. rm -f $sendmail_pidfile_msp
  69. fi
  70. fi
  71. }
  72. %start -p 200 -u @l_susr@
  73. sendmail_start
  74. %stop -p 200 -u @l_susr@
  75. sendmail_signal TERM KILL
  76. %restart -u @l_susr@
  77. sendmail_signal TERM KILL
  78. sleep 2
  79. sendmail_start
  80. %reload -u @l_susr@
  81. # sendmail does not like SIGHUP on queue-only processes,
  82. # so we have to perform actually a restart...
  83. sendmail_signal TERM KILL
  84. sleep 2
  85. sendmail_start
  86. %daily -u @l_susr@
  87. if opServiceEnabled sendmail; then
  88. opTmpDirGen sendmail
  89. opTmpDirFile sendmail hint hintfile
  90. prolog="true"
  91. if [ ".$sendmail_log_prolog" != . ]; then
  92. prolog="$prolog; $sendmail_log_prolog"
  93. fi
  94. epilog="echo 'epilog' >$hintfile"
  95. if [ ".$sendmail_log_epilog" != . ]; then
  96. epilog="$epilog; $sendmail_log_epilog"
  97. fi
  98. shtool rotate -f \
  99. -n${sendmail_log_numfiles} -s${sendmail_log_minsize} \
  100. -d -z${sendmail_log_complevel} \
  101. -o@l_musr@ -g@l_mgrp@ -m644 \
  102. -P "$prolog" \
  103. -E "$epilog" \
  104. @l_prefix@/var/sendmail/sendmail.log
  105. if [ ".`cat $hintfile`" = ".epilog" ]; then
  106. sendmail_signal TERM KILL
  107. sleep 2
  108. sendmail_start
  109. fi
  110. opTmpDirDel sendmail
  111. fi