sendmail Startskript für FreeBSD

From: Pascal Schumacher VCU - Technik <pascal(at)vcu.de>
Date: Mon, 3 Jun 2002 11:07:07 +0200

Hallo,

ich muss bei uns einen Mailserver von Solaris auf FreeBSD umstellen. Als Mailserver-Software verwende ich sendmail. Nun existiert ein Skript, dass z.B. nach der Aktualisierung des "virtusertable" sendmail neu startet. Dies geschieht durch den Aufruf des entsprechen Startskripts (S88sendmail) im Verzeichnis /etc/rc2.d, mit den Parametern "start" bzw "stop".
Problem: Bei FreeBSD existiert ein solches Skript ja nicht, sondern sendmail wird über die "rc.conf" gestartet. Die entsprechende Befehlssequenz in der Datei "rc" sieht ein Stoppen des Dienstes ja offensichtlich nicht vor.
Hat jemand vielleicht eine Vorlage für solch ein Skript ? Sollte man das Starten von sendmail generell von der "rc.conf" in eine eigene Skriptdatei verlagern ?
Kann man vielleicht das Solaris-Skript als Vorlage verwenden, s.u. ? (Ich bin Unix-Neuling, mit dem Ändern von Skripten läufts noch nicht so).
Wie lässt sich das Beenden und Starten des sendmail-Dämons per Skript am einfachsten unter FreeBSD bewerkstelligen ?

#!/sbin/sh
#
# Copyright (c) 1997 by Sun Microsystems, Inc.
# All rights reserved.
#
#ident "@(#)sendmail 1.8 98/07/07 SMI"

ERRMSG1='WARNING: /var/mail is NFS-mounted without setting actimeo=0,'
ERRMSG2='this can cause mailbox locking and access problems.'

case "$1" in
'start')
        if [ -f /usr/local/etc/mail/sendmail -a -f /usr/local/etc/mail/sendmail.cf ]; then
                if [ ! -d /var/spool/mqueue ]; then
                        /usr/bin/mkdir -m 0750 /var/spool/mqueue
                        /usr/bin/chown root:bin /var/spool/mqueue
                fi
                /usr/local/etc/mail/sendmail -bd -q15m -C /usr/local/etc/mail/sendmail.cf &
        fi

        if /usr/bin/nawk 'BEGIN{s = 1}
            $2 == "/var/mail" && $3 == "nfs" && $4 !~ /actimeo=0/ &&
            $4 !~ /noac/{s = 0} END{exit s}' /etc/mnttab; then

                /usr/bin/logger -p mail.crit "$ERRMSG1"
                /usr/bin/logger -p mail.crit "$ERRMSG2"
        fi
        ;;

'stop')
        pid=`/usr/bin/ps -eo pid,comm | /usr/bin/awk '{ if ($2 == "/usr/local/etc/mail/sendmail") print $1 }'`
        if test "$pid"
        then
                /usr/bin/kill $pid
        fi

        ;;

*)
        echo "Usage: $0 { start | stop }"
        exit 1
        ;;
esac
exit 0

_________________________________________________________________

Danke im Vorraus.

MfG Schumacher

 

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 03 Jun 2002 - 11:09:27 CEST

search this site