Postfix & Tiger
Unter Tiger ist Postfix als Mailserver auf Verlangen angeschaltet. Es wird die Mail-Queue beobachtet, sobald eine Mail darin landet, wird Postfix gestartet.
Mit dem Befehl:
sudo launchctl list
werden alle jobs von launchd (daemon agent manager) aufgelistet. Darunter befindet sich auch:
org.postfix.master.plist
Betrachtet man diese Datei genauer:
cat /System/Library/LaunchDaemons/org.postfix.master.plist
Code:
<?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
<string>org.postfix.master
<key>Program
<string>/usr/libexec/postfix/master
<key>ProgramArguments
<array>
<string>master
<string>-e
<string>60
</array>
<key>QueueDirectories
<array>
<string>/var/spool/postfix/maildrop
</array>
</dict>
</plist>
erkennt man, dass der Postfix Master Prozess mit der option -e 60 und dem QueueDirectory /var/spool/postfix/maildrop gestartet wird. Aus der manpage von master:
-e exit_time Terminate the master process after exit_time seconds. Childprocesses terminate at their convenience.
Das heißt, der postfix master wird gestartet, sobald eine Mail im QueueDirectory landet und bleibt dann für 60 Sekunden aktiv.
Apple hat das leider etwas unglücklich gelöst, da die anfallenden Mails von root nach /dev/null wandern, d.h. es läuft zwar der Mailserver und die anfallenden Mails werden ins Nirvana geschickt.
Für alle, die keinen Mailserver wollen, empfiehlt es sich diesen komplett auszuschalten:
launchctl -w unload /System/Library/LaunchDaemons/org.postfix.master.plist
Vorteile: geringere CPU-Auslastung, evtl. längere Akkulaufzeit
Dieser Schritt lässt sich natürlich wieder rückgängig machen mit:
launchctl -w load /System/Library/LaunchDaemons/org.postfix.master.plist
Wer nun aber Postfix als richtigen MTA laufen lassen möchte, muss den MTA ständig am Laufen halten, d.h. die zusätzlichen Optionen mit dem Zeitlimit und dem QueueDirectory stören. Das erreicht man, indem man die betreffenden Zeilen in der Datei entfernt:
cat /System/Library/LaunchDaemons/org.postfix.master.plist
Code:
<?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
<string>org.postfix.master
<key>OnDemand
<false/>
<key>Program
<string>/usr/libexec/postfix/master
<key>ProgramArguments
<array>
<string>master
</array>
</dict>
</plist>
Anschließend sollte man den master mit launchctl erneut laden, wer es dauerhaft möchte:
launchctl -w unload /System/Library/LaunchDaemons/org.postfix.master.plist
launchctl -w load /System/Library/LaunchDaemons/org.postfix.master.plist
Die weitere Konfiguration von Postfix führt hier im Forum zu weit und kann aber bei:
http://www.postfix.org/ nachgelesen werden. Dort gibt es Informationen und Dokumentation aus erster Hand.