You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

122 lines
4.3 KiB

#!@l_prefix@/lib/openpkg/bash @l_prefix@/etc/rc
##
## rc.sendmail -- Run-Commands
## Copyright (c) 2000-2001 Cable & Wireless Deutschland GmbH
## Copyright (c) 2000-2001 Ralf S. Engelschall <rse@engelschall.com>
##
## Permission to use, copy, modify, and distribute this software for
## any purpose with or without fee is hereby granted, provided that
## the above copyright notice and this permission notice appear in all
## copies.
##
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
##
%config
MTA_name="sendmail"
MTA_aliases_file="@l_prefix@/etc/sendmail/t.aliases"
MTA_aliases_update="cd @l_prefix@/etc/sendmail && make t.aliases.db"
sendmail_enable="yes"
sendmail_flags_in="-bd"
sendmail_flags_out="-q60s"
sendmail_flags_msp="-Ac -q60s"
sendmail_flags=""
sendmail_pidfile_in="@l_prefix@/var/sendmail/sendmail.in.pid"
sendmail_pidfile_out="@l_prefix@/var/sendmail/sendmail.out.pid"
sendmail_pidfile_msp="@l_prefix@/var/sendmail/clientmqueue/sendmail.msp.pid"
sendmail_log_prolog="true"
sendmail_log_epilog="true"
sendmail_log_numfiles="10"
sendmail_log_minsize="1M"
sendmail_log_complevel="9"
%common
sendmail_start () {
if opServiceEnabled sendmail; then
@l_prefix@/sbin/sendmail $sendmail_flags_in $sendmail_flags \
-OPidFile=$sendmail_pidfile_in
@l_prefix@/sbin/sendmail $sendmail_flags_out $sendmail_flags \
-OPidFile=$sendmail_pidfile_out
@l_prefix@/sbin/sendmail $sendmail_flags_msp $sendmail_flags \
-OPidFile=$sendmail_pidfile_msp
fi
}
sendmail_signal () {
if opServiceEnabled sendmail; then
if [ -f $sendmail_pidfile_in ]; then
rpmtool signal -c -d2 \
-p `head -1 $sendmail_pidfile_in` "$@"
rm -f $sendmail_pidfile_in
fi
if [ -f $sendmail_pidfile_out ]; then
rpmtool signal -c -d2 \
-p `head -1 $sendmail_pidfile_out` "$@"
rm -f $sendmail_pidfile_out
fi
if [ -f $sendmail_pidfile_msp ]; then
rpmtool signal -c -d2 \
-p `head -1 $sendmail_pidfile_msp` "$@"
rm -f $sendmail_pidfile_msp
fi
fi
}
%start -p 200 -u @l_susr@
opServiceEnabled sendmail || exit 0
sendmail_start
%stop -p 200 -u @l_susr@
opServiceEnabled sendmail || exit 0
sendmail_signal TERM KILL
%restart -u @l_susr@
opServiceEnabled sendmail || exit 0
sendmail_signal TERM KILL
sleep 2
sendmail_start
%reload -u @l_susr@
opServiceEnabled sendmail || exit 0
# sendmail does not like SIGHUP on queue-only processes,
# so we have to perform actually a restart...
sendmail_signal TERM KILL
sleep 2
sendmail_start
%daily -u @l_susr@
opServiceEnabled sendmail || exit 0
opTmpDirGen sendmail
opTmpDirFile sendmail hint hintfile
prolog="true"
if [ ".$sendmail_log_prolog" != . ]; then
prolog="$prolog; $sendmail_log_prolog"
fi
epilog="echo 'epilog' >$hintfile"
if [ ".$sendmail_log_epilog" != . ]; then
epilog="$epilog; $sendmail_log_epilog"
fi
shtool rotate -f \
-n${sendmail_log_numfiles} -s${sendmail_log_minsize} \
-d -z${sendmail_log_complevel} \
-o@l_musr@ -g@l_mgrp@ -m644 \
-P "$prolog" \
-E "$epilog" \
@l_prefix@/var/sendmail/sendmail.log
if [ ".`cat $hintfile`" = ".epilog" ]; then
sendmail_signal TERM KILL
sleep 2
sendmail_start
fi
opTmpDirDel sendmail