Профиль приложения ejabberd в Ubuntu 22.04 сломан

Профиль apparmour для ejabberd не работает. При запуске ejabberd:sudo systemctrl (re)start ejabberd процесс зависает, и причина в том, что erlang не может связаться с systemd из-за того, что его ловушка уведомлений не работает:

2022-06-01 09:12:46.211457+03:00 [ошибка] <0.356.0>@ejabberd_systemd:handle_info/2:135 Не удается пропинговать сторожевой таймер: {badmatch,{error,eacces}}

Проблема скорее всего в пути или правильном выпуске. Забавно, что с точно такой же конфигурацией на другом сервере работает.... Кто-нибудь?

2 ответа

Этот файл модуля systemd от 20.04 решает проблему:

      Description=A distributed, fault-tolerant Jabber/XMPP server
Documentation=https://www.process-one.net/en/ejabberd/docs/
After=epmd.service network.target
Requires=epmd.service

[Service]
Type=forking
User=ejabberd
Group=ejabberd
LimitNOFILE=65536
Restart=on-failure
RestartSec=5
ExecStart=/bin/sh -c '/usr/sbin/ejabberdctl start && /usr/sbin/ejabberdctl started'
ExecStop=/bin/sh -c '/usr/sbin/ejabberdctl stop && /usr/sbin/ejabberdctl stopped'
ExecReload=/bin/sh -c '/usr/sbin/ejabberdctl reload_config'
PrivateTmp=true
ProtectHome=true
ProtectSystem=full
TimeoutSec=300

[Install]
WantedBy=multi-user.targe

Разместите здесь:/lib/systemd/system/ejabberd.service

Работает как часы, ошибки watchgog больше нет, и запуск службы больше не зависает Чем отличается от оригинального ejabberd.service:-WatchdogSec=30 (больше не присутствует)-NotifyAccess=all (больше не присутствует)-PrivateDevices=true (больше не существует)-AmbientCapabilities=CAP_NET_BIND_SERVICE (больше не существует)

  • ExecStart=/bin/sh -c '/usr/sbin/ejabberdctl переднего плана' (заменено на)
  • ExecStart=/bin/sh -c '/usr/sbin/ejabberdctl start && /usr/sbin/ejabberdctl запущен'
Другие вопросы по тегам