On 2/26/11 2:06 AM, Christian Roessner at
c+postfix_org...@roessner-network-solutions.com wrote:

> Am Samstag, den 26.02.2011, 08:51 +0100 schrieb Christian Roessner:
>> Hi,
>> 
>>> This got my attention because I run the Apple provided Postfix (2.5.5) on
>>> Mac OS X client (10.6.6 specifically). What do you know - when I look at the
>>> launchctl plist Apple provides to start Postfix, it does so by running
>>> master directly. Thanks Apple!
>> 
>> Calling /usr/libexec/postfix/master in the plist. That should not be
>> critics. My friend Lars runs three X-Serve servers. One Tiger, Leopard
>> and before posting here, I asked him to please just look into the plist
>> and tell me, what is called.
> 
> cat /System/Library/LaunchDaemons/org.postfix.master.plist
> <?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>org.postfix.master</string>
>         <key>Program</key>
>         <string>/usr/libexec/postfix/master</string>
>         <key>ProgramArguments</key>
>         <array>
>                 <string>master</string>
>                 <string>-e</string>
>                 <string>60</string>
>         </array>
>         <key>QueueDirectories</key>
>         <array>
>                 <string>/var/spool/postfix/maildrop</string>
>         </array>
>         <key>AbandonProcessGroup</key>
>         <true/>
> </dict>
> </plist>
> 
> Here you see the plist. It must not start postfix by calling master
> directly.

I think a little of what you are trying to say is getting lost in
translation. What you posted is the Apple provided plist that is supposed to
run Postfix for only 60 seconds as an outgoing only server. I had modified
it to remove the "-e 60" so it runs all the time as a full server.

But as of last night, I have disabled it and replaced it with a "run at boot
only" plist (note that user or 3rd party provided plists go in
/Library/LaunchDaemons with /System/Library/LaunchDaemons reserved for Apple
provided plists):
# cat /Library/LaunchDaemons/postfix.plist
<?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>postfix</string>
        <key>OnDemand</key>
        <true/>
        <key>ProgramArguments</key>
        <array>
                <string>/var/root/start_postfix.sh</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>ServiceIPC</key>
        <false/>
</dict>
</plist>

The script it calls is simply:
# cat /var/root/start_postfix.sh
#!/bin/sh
postfix start
sleep 1

With the "sleep 1" being necessary to deal with launchd not liking programs
that daemonize. It wants things it starts to stick around so it can monitor
them. But with OnDemand set to true, it does not do anything when that
script dies. And as Wietse said, he's never seen Postfix die so not a big
deal that no launchd monitoring will be provided (this is SOHO server - I am
on e-mail enough that I'll know if there is a problem and there are no paid
users I need to worry about).

-- 
Larry Stone
lston...@stonejongleux.com
http://www.stonejongleux.com/


Reply via email to