rc.sendmail 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #!@l_prefix@/lib/openpkg/bash @l_prefix@/etc/rc
  2. ##
  3. ## rc.sendmail -- Run-Commands
  4. ##
  5. %config
  6. MTA_name="sendmail"
  7. MTA_aliases_file="@l_prefix@/etc/sendmail/t.aliases"
  8. MTA_aliases_update="cd @l_prefix@/etc/sendmail && make t.aliases.db"
  9. sendmail_enable="$openpkg_rc_def"
  10. sendmail_flags_in="-bd"
  11. sendmail_flags_out="-q60s"
  12. sendmail_flags_msp="-Ac -q60s"
  13. sendmail_flags=""
  14. sendmail_pidfile_in="@l_prefix@/var/sendmail/sendmail.in.pid"
  15. sendmail_pidfile_out="@l_prefix@/var/sendmail/sendmail.out.pid"
  16. sendmail_pidfile_msp="@l_prefix@/var/sendmail/clientmqueue/sendmail.msp.pid"
  17. sendmail_log_prolog="true"
  18. sendmail_log_epilog="true"
  19. sendmail_log_numfiles="10"
  20. sendmail_log_minsize="1M"
  21. sendmail_log_complevel="9"
  22. %common
  23. sendmail_start () {
  24. if opServiceEnabled sendmail; then
  25. @l_prefix@/sbin/sendmail $sendmail_flags_in $sendmail_flags \
  26. -OPidFile=$sendmail_pidfile_in
  27. @l_prefix@/sbin/sendmail $sendmail_flags_out $sendmail_flags \
  28. -OPidFile=$sendmail_pidfile_out
  29. @l_prefix@/sbin/sendmail $sendmail_flags_msp $sendmail_flags \
  30. -OPidFile=$sendmail_pidfile_msp
  31. fi
  32. }
  33. sendmail_signal () {
  34. if opServiceEnabled sendmail; then
  35. if [ -f $sendmail_pidfile_in ]; then
  36. rpmtool signal -c -d2 \
  37. -p `head -1 $sendmail_pidfile_in` "$@"
  38. rm -f $sendmail_pidfile_in
  39. fi
  40. if [ -f $sendmail_pidfile_out ]; then
  41. rpmtool signal -c -d2 \
  42. -p `head -1 $sendmail_pidfile_out` "$@"
  43. rm -f $sendmail_pidfile_out
  44. fi
  45. if [ -f $sendmail_pidfile_msp ]; then
  46. rpmtool signal -c -d2 \
  47. -p `head -1 $sendmail_pidfile_msp` "$@"
  48. rm -f $sendmail_pidfile_msp
  49. fi
  50. fi
  51. }
  52. %start -p 200 -u @l_susr@
  53. opServiceEnabled sendmail || exit 0
  54. sendmail_start
  55. %stop -p 200 -u @l_susr@
  56. opServiceEnabled sendmail || exit 0
  57. sendmail_signal TERM KILL
  58. %restart -u @l_susr@
  59. opServiceEnabled sendmail || exit 0
  60. sendmail_signal TERM KILL
  61. sleep 2
  62. sendmail_start
  63. %reload -u @l_susr@
  64. opServiceEnabled sendmail || exit 0
  65. # sendmail does not like SIGHUP on queue-only processes,
  66. # so we have to perform actually a restart...
  67. sendmail_signal TERM KILL
  68. sleep 2
  69. sendmail_start
  70. %daily -u @l_susr@
  71. opServiceEnabled sendmail || exit 0
  72. opTmpDirGen sendmail
  73. opTmpDirFile sendmail hint hintfile
  74. prolog="true"
  75. if [ ".$sendmail_log_prolog" != . ]; then
  76. prolog="$prolog; $sendmail_log_prolog"
  77. fi
  78. epilog="echo 'epilog' >$hintfile"
  79. if [ ".$sendmail_log_epilog" != . ]; then
  80. epilog="$epilog; $sendmail_log_epilog"
  81. fi
  82. shtool rotate -f \
  83. -n${sendmail_log_numfiles} -s${sendmail_log_minsize} \
  84. -d -z${sendmail_log_complevel} \
  85. -o@l_musr@ -g@l_mgrp@ -m644 \
  86. -P "$prolog" \
  87. -E "$epilog" \
  88. @l_prefix@/var/sendmail/sendmail.log
  89. if [ ".`cat $hintfile`" = ".epilog" ]; then
  90. sendmail_signal TERM KILL
  91. sleep 2
  92. sendmail_start
  93. fi
  94. opTmpDirDel sendmail