Запуск nullmailer в NetBSD с помощью daemontools

В этой статье предполагается, что в системе NetBSD уже установлен и настроен nullmailer, который запускается с помощью скрипта /etc/rc.d/nullmailer. Подробнее о настройке nullmailer в NetBSD можно почитать в статье Настройка nullmailer в NetBSD.

Также в этой статье предполагается, что в системе уже установлен и настроен пакет daemontools. Установка и настройка пакета описана в главе Установка daemontools статьи Запуск Gitea в NetBSD с помощью daemontools.

Создаём каталог сервиса /service/.nullmailer:

# mkdir -p /service/.nullmailer/

Создадим внутри него файл run со следующим содержимым:

#!/bin/sh

exec 2>&1

if [ ! -f /usr/pkg/etc/nullmailer/remotes ]
then
        echo "Missing /usr/pkg/etc/nullmailer/remotes"
        exit 1
fi

if [ ! -d /var/spool/nullmailer/queue ]
then
        echo "No /var/spool/nullmailer/queue"
        exit 2
fi

if [ ! -d /var/spool/nullmailer/tmp ]
then
        echo "No /var/spool/nullmailer/tmp"
        exit 3
fi

exec \
setuidgid nullmail \
/usr/pkg/libexec/nullmailer/nullmailer-send

И сделаем его исполняемым:

# chmod +x /service/.nullmailer/run

Создадим каталог /service/.nullmailer/log/:

# mkdir /service/.nullmailer/log/

Создадим внутри него скрипт run со следующим содержимым:

#!/bin/sh

exec \
setuidgid multilog \
multilog t /var/log/nullmailer/

И сделаем его исполняемым:

# chmod +x /service/.nullmailer/log/run

Теперь создадим каталог /var/log/nullmailer, в котором multilog будет вести журналы работы сервиса:

# mkdir /var/log/nullmailer/

Установим пользователя и группу multilog владельцами этого каталога:

# chown multilog:multilog /var/log/nullmailer/

Остановим nullmailer, запущенный с помощью скрипта /etc/rc.d/nullmailer:

# /etc/rc.d/nullmailer stop

Запустим сервис средствами daemontools, переименовав каталог сервиса:

# mv /service/.nullmailer /service/nullmailer

Для совместимости с родной системной инициализации NetBSD можно поступить так, как описано в главе Совместимость с rc статьи Запуск Gitea в NetBSD с помощью daemontools, то есть создать символическую ссылку на описанный в этой главе скрипт /etc/rc.daemontools:

# ln -s /etc/rc.daemontools /etc/rc.d/nullmailer