使Postfix在Lion(而非服务器)上永久运行的正确方法是什么


35

我可以通过以下方式临时启动Postfix:

$ sudo launchctl
launchd% start org.postfix.master

但是,Console.app显示它只能运行很短的时间:

26/11/11 2:00:55.710 PM postfix/master: master exit time has arrived

我认为文件/System/Library/LaunchDaemons/org.postfix.master.plist需要更新以使Postfix永久运行,但是我还没有找到答案。

使Postfix在启动时启动并永久运行的正确方法是什么?

更新 为了按照所选答案的建议编辑文件,我首先将其转换为XML。

plutil  -convert xml1 /System/Library/LaunchDaemons/org.postfix.master.plist

然后使用Vim对其进行编辑:

sudo vim /System/Library/LaunchDaemons/org.postfix.master.plist

我在尝试让Xcode编辑文件时遇到问题。

Answers:


36

以下更改对我有用:

  1. 从中删除以下两个元素/System/Library/LaunchDaemons/org.postfix.master.plist

    <string>-e</string>
    <string>60</string>

    60秒后,它将停止退出。

  2. 将以下元素添加为<dict>...</dict>同一plist文件中的元素的子元素:

    <key>KeepAlive</key>
    <true/>
  3. 重新加载文件:

    sudo launchctl unload /System/Library/LaunchDaemons/org.postfix.master.plist 
    sudo launchctl load /System/Library/LaunchDaemons/org.postfix.master.plist

postfix现在应该作为守护程序运行。

以上作品适用于山狮,小牛,优胜美地和埃尔卡皮坦。对于具有系统完整性保护的系统(El Capitan和更高版本),有两种选择:

  1. 复制/System/Library/LaunchDaemons/org.postfix.master.plist/Library/LaunchDaemons/org.postfix.custom.plist,更改org.postfix.masterorg.postfix.custom,然后如上所述进行卸载和加载。
  2. 禁用SIP(使用csrutil),进行编辑,然后重新启用SIP。

注意:对于High Sierra和Mojave,配置文件com.apple.postfix.master.plist不是org.postfix.custom.plist


1
为我工作的小牛,但我不得不把完整的文件路径来加载它:sudo的launchctl负载/System/Library/LaunchDaemons/org.postfix.master.plist

1
cd /System/Library/LaunchDaemons之前有一行,可能已经错过了。我内联完整的路径以使其更加清晰。unloadload
Jim Stewart 2015年

2
@mjturner-禁用SIP吗?nope nope nope ...更好的是只是创建一个您在/ Library / LaunchDaemons /中拥有的新.plist
Chris Withers

1
@mjturner-是的,这很奇怪。我没有收到任何通知,这有点可悲。想要进行相同的编辑吗?
克里斯·威瑟斯

3
@mjturner在High Sierra上org.postfix.master.plist已重命名为com.apple.postfix.master.plist。也许您可能希望将其添加到答案中。
Utku
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.