Quelle est la meilleure façon de supprimer un fichier pid_file amavisd obsolète au premier démarrage après une panique ou une panne de courant?

3

Composant Lion Mail Server postfix / smtp 100% reproductible bloque la livraison du courrier smtp entrant au premier démarrage après une panne d'alimentation ou une panique.

Les messages d'erreur de mail.log sont comme:

postfix/smtp[45785]: connect to 127.0.0.1[127.0.0.1]:10024: Connection refused
postfix/smtp[45785]: 2F7131F9A97: to=<[email protected]>, relay=none, delay=76041, delays=76040/0.36/0.05/0, dsn=4.4.1, status=deferred (connect to 127.0.0.1[127.0.0.1]:10024: Connection refused)
postfix/error[45790]: 550D61F9A99: to=<[email protected]>, relay=none, delay=76040, delays=76040/0.39/0/0, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to 127.0.0.1[127.0.0.1]:10024: Connection refused)
postfix/postscreen[45872]: NOQUEUE: reject: RCPT from [100.200.100.159]:65392: 450 4.3.2 Service currently unavailable; from=<[email protected]>, to=<[email protected]>, proto=ESMTP, helo=<host.domain.tld>
/usr/libexec/postfix/greylist.pl[45885]: Temporary message rejection to: <[email protected]> from: <[email protected]> sent from: [100.200.100.159] for: 60 seconds due to greylisting
postfix/smtpd[45879]: NOQUEUE: reject: RCPT from host.domain.tld[100.200.100.159]: 450 4.7.1 <[email protected]>: Recipient address rejected: Service is unavailable; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<host.domain.tld>

La question semble être liée à la Amavis filtre de contenu en raison de la connexion au port numéro 10024 et de la configuration de amavisd sur ce port. Amavis.log:

/usr/bin/amavisd[236]: (!)Net::Server: 2012/07/25-13:38:49 Pid_file already exists for running process (88)... aborting\n\n  at line 277 in file /System/Library/Perl/Extras/5.12/Net/Server.pm
...
/usr/bin/amavisd[236]: Net::Server: 2012/07/25-13:38:49 Server closing!
...repeating roughly every 10 seconds...

le solution de contournement est de redémarrer la machine, après le deuxième démarrage, la livraison du courrier smtp entrant n'est plus bloquée.

Le problème semble être relatif à https://serverfault.com/questions/138690/amavisd-net-server-pid-file-already-exists-after-system-crash-and-startup

Comment réparer en permanence Apple Mail Server acceptera-t-il les messages entrants smtp lors du premier démarrage, en supprimant le fichier pid_file amavis restant lors du dernier arrêt non nettoyé?

Pro Backup
la source

Réponses:

1

Créez un élément launchd qui s'exécute au démarrage (démarrage du système avant le démarrage d'amavisd) en exécutant la commande pour vérifier que /private/var/run/amavisd.pid existe, puis supprimez-le:

if test -f /private/var/run/amavisd.pid; then rm /private/var/run/amavisd.pid

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>amavisd_delete_pid</string>
    <key>ProgramArguments</key>
    <array>
        <string>if</string>
        <string>test</string>
        <string>-f</string>
        <string>/private/var/run/amavisd.pid;</string>
        <string>then</string>
        <string>rm</string>
        <string>/private/var/run/amavisd.pid</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>Nice</key>
    <integer>10</integer>
    <key>KeepAlive</key>
    <false/>
    <key>AbandonProcessGroup</key>
    <true/>
</dict>
</plist>
Pro Backup
la source