Как правильно заставить 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 для редактирования файла.

dkam
источник

Ответы:

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

Постфикс должен теперь работать как демон.

Вышеупомянутые работы на Горного Льва, Маверикс, Йосемити и Эль-Капитан. Для систем с защитой целостности системы (El Capitan и более поздние версии) есть два варианта:

  1. Копирование , /System/Library/LaunchDaemons/org.postfix.master.plistчтобы /Library/LaunchDaemons/org.postfix.custom.plist, изменяя org.postfix.masterк , org.postfix.customа затем выгрузки и погрузки , как указано выше.
  2. Отключение SIP (использование csrutil), внесение изменений, а затем повторное включение SIP.

Примечание. В High Sierra и Mojave файл конфигурации com.apple.postfix.master.plistвместо org.postfix.custom.plist.

mjturner
источник
1
Я работал на Mavericks, но мне пришлось указать полный путь к файлу, чтобы загрузить его: sudo launchctl load /System/Library/LaunchDaemons/org.postfix.master.plist
rich
1
Там была cd /System/Library/LaunchDaemonsлиния до unloadи load, возможно, пропустили. Я указал полный путь, чтобы сделать его более понятным.
Джим Стюарт,
2
@mjturner - отключить глоток? Нету Нету Нету ... Намного лучше просто создать новый .plist, которым вы владеете в / Library / LaunchDaemons /
Крис Уизерс
1
@mjturner - да, это странно. Я не получил никакого уведомления, и это немного грустно. Хотите сделать то же самое редактирование?
Крис Уизерс
3
@mjturner На Высокой Сьерре org.postfix.master.plistпереименовывается в com.apple.postfix.master.plist. Возможно, вы захотите добавить это к ответу.
Утку