· spectrum2 systemd xmpp transports debian debian 9 howto

Поднимаем правильно spectrum2 с помощью systemd

При переносе виртуалки с чатиками я столкнулся с одной очень неприятной проблемой при поднятии транспортов Spectrum2 - они не поднимались после перезагрузки, несмотря на включенный systemd-юнит. Быстрый просмотр логов показал, что в момент поднятия транспортов XMPP сервер (ejabberd в моем случае) еще не готов принимать подключения от кого бы там ни было. Следовательно, надо починить порядок запуска.

Подразумевается, что вы поставили spectrum2 из официального репозитория, который указан на сайте spectrum2.

Копируем /lib/systemd/system/spectrum2.service в /etc/systemd/system/spectrum2-transports.service. Смена имени необходима для того, чтобы в случае обновления наю юнит не перезаписался и не слетел с автозапуска.

Далее в секцию [Unit] добавляем следующую строчку, в конец:

After=ejabberd.service

Сохраняем, делаем systemctl daemon-reload, systemctl enable spectrum2-transports и наслаждаемся. Теперь транспорты будут подниматься после ejabberd, когда он уже будет готов принимать подключения.


Есть еще один способ, который более “правильный” - переназначить секцию [Unit] отдельным файлом-конфигом, но у меня такие переназначения не работали, скорее всего, из-за кривости моих рук и, возможно, бага в версии systemd, которую я использовал.

  • LinkedIn
  • Tumblr
  • Reddit
  • Google+
  • Pinterest
  • Pocket