[exim-conf] унификация стартовых скриптов exim на Mac OS X при сборке из pkgsrc и MacPorts

Victor Ustugov victor на corvax.kiev.ua
Ср Янв 23 01:01:34 EET 2013


Victor Ustugov wrote:

>>> отличается pkgsrc для Mac OS X наличием файла настроек
>>> /System/Library/LaunchDaemons/org.exim.exim.plist для общесистемного
>>> менеджера сервисов launchd с использованием org.exim.exim в качестве
>>> значения Label.
>>
>> в MacPorts такой файл создается автоматически на основании директив
>> startupitem.* в файле сборки порта Portfile. так что с этим возиться не
>> пришлось.

plist файл для exim, собранного из pkgsrc, теперь при установке
копируется не в каталог /System/Library/LaunchDaemons, а в каталог
/Library/LaunchDaemons, т. е. по аналогии с plist файлом из состава exim
из MacPorts.

также в plist файл из pkgsrc добавлен параметр KeepAlive со значением true

>>> стартовать exim при этом можно двумя способами - с помощью launchctl и
>>> с помощью традиционного стартового скрипта из /usr/pkg/etc/rc.d:
>>>
>>> /bin/launchctl start org.exim.exim
>>> /usr/pkg/etc/rc.d/exim start

добавление в plist файл параметра KeepAlive со значением true сделало
невозможным останавливать и стартовать скрипт с помощью команд stop и
start интерфейса launchctl.

поэтому скрипт /usr/pkg/etc/rc.d/exim переделан под использование команд
load и unload интерфейса launchctl.

из сообщения, выдаваемого после установки exim, убрано упоминание
возможности стартовать exim путем выполнения /bin/launchctl start
org.exim.exim

>> при сборке из MacPorts стартовать exim можно несколькими способами:
>>
>> /opt/local/share/exim/exim.sh start - собственно стартовый скрипт
>>
>> /opt/local/etc/LaunchDaemons/org.macports.exim/exim.wrapper start -
>> wrapper для вышеуказанного скрипта, который используется при
>> необходимости launchctl - управляющим интерфейсом для launchd
> 
> как показала практика последних суток, двумя вышеуказанными скриптами
> лучше не останавливать exim. launchd все равно его перезапустит. по
> крайней мере если значение KeepAlive в org.macports.exim.plist будет
> равно true.
> 
>> /bin/launchctl start org.macports.exim - с этим способом старта пока
>> проблемы, хотя он должен быть самым корректным при использовании launchd
> 
> опять же, если значение KeepAlive в org.macports.exim.plist будет равно
> true, то при выполнении /bin/launchctl stop org.macports.exim будет
> выполнен перезапуск exim'а менеджером launchd.
> 
> видимо просто придется просто выполнять load/unload

для exim из MacPorts сделан стартовый скрипт по аналогии со стартовым
скриптом /usr/pkg/etc/rc.d/exim из состава pkgsrc.

скрипт устанавливается в каталог /opt/local/etc/rc.d и работает,
используя команды load и unload интерфейса launchctl.

>>> если exim будет собираться с поддержкой SPF, то libspf2 лучше собрать с
>>> использованием отдельного механизма, а не с помощью сборки штатного pkgsrc:
>>> http://mta.org.ua/exim-4.76-conf/packages/pkgsrc-macosx/libspf2-1.2.9/
>>
>> в MacPorts нет порта для libspf2. поэтому при необходимости проверять
>> соответствие адреса хоста отправителя SPF записи домена отправителя
>> нужно использовать `SPFD' в качестве значения переменной
>> `confSPF2_BACKEND' в site/conf.
>>
>> в MacPorts нужно установить порт p5-mail-spf и использовать spfd и его
>> состава.
>>
>> мне не удалось создать файл для запуска spfd средствами launchd.
>> p5-mail-spf - это stub port, реально spfd собрался у меня из порта
>> p5.12-mail-spf. для p5.12-mail-spf отдельного Portfile нет, а в Portfile
>> для p5-mail-spf все настройки startupitem.* были проигнорированы при сборке.
>>
>> т. о. стартовые скрипты и файл для launchd придется настраивать вручную.
>>
>> нужно создать каталог /opt/local/share/p5-mail-spf и сохранить в нем файл:
>>
>> http://mta.org.ua/exim-4.76-conf/packages/ports-macosx/p5-mail-spf-2.7.0_3/files/share/p5-mail-spf/spfd.sh
>>
>> далее нужно создать каталог
>> /opt/local/etc/LaunchDaemons/org.macports.spfd и сохранить в нем файлы:
>>
>> http://mta.org.ua/exim-4.76-conf/packages/ports-macosx/p5-mail-spf-2.7.0_3/files/etc/LaunchDaemons/org.macports.spfd/spfd.wrapper
>>
>> http://mta.org.ua/exim-4.76-conf/packages/ports-macosx/p5-mail-spf-2.7.0_3/files/etc/LaunchDaemons/org.macports.spfd/org.macports.spfd.plist
>>
>> после этого нужно выполнить:
>>
>> /bin/launchctl load -w
>> /opt/local/etc/LaunchDaemons/org.macports.spfd/org.macports.spfd.plist
> 
> еще нужно выполнить:
> 
> ln -s
> /opt/local/etc/LaunchDaemons/org.macports.spfd/org.macports.spfd.plist
> /Library/LaunchDaemons/

еще нужно в каталоге /opt/local/etc/rc.d сохранить файл:

http://mta.org.ua/exim-4.76-conf/packages/ports-macosx/p5-mail-spf-2.7.0_3/files/etc/rc.d/spf

это стартовый скрипт для spfd, работающий через launchctl

>> это позволит полноценно работать с SPF записями без использования
>> библиотеки libspf2.


-- 
Best wishes Victor Ustugov   mailto:victor на corvax.kiev.ua
public GnuPG/PGP key:        http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 77186900, 371808614 nic-handle: CRV-UANIC




Подробная информация о списке рассылки exim-conf