Openfire não inicia na inicialização usando o systemd

0

Eu inicio manualmente o openfire usando o seguinte comando:

sudo -u openfire /opt/openfire/bin/openfire start

No Ubuntu 14.04, eu finalmente descobri que eu poderia iniciá-lo automaticamente na inicialização usando o seguinte arquivo aberto openfire.conf:

description "Openfire launch on boot"
start on startup
task
exec start-stop-daemon --start --quiet -c openfire --exec /opt/openfire/bin/openfire -- start

Agora eu reconstruí meu servidor no Ubuntu 16.04 e gostaria de obter a mesma coisa usando o systemd. Eu criei o arquivo de unidade /lib/systemd/system/openfire.service:

[Unit]
Description=OpenFire Start on Boot

[Service]
User=openfire
ExecStart=/bin/sh -c "/opt/openfire/bin/openfire start"

[Install]
WantedBy=multi-user.target

Isso não funciona. Depois de salvar o arquivo de unidade e ativá-lo com sudo systemctl enable openfire.service e reinicializar, eu verifico o status com sudo -u openfire /opt/openfire/bin/openfire status e obtenho o resultado openfire is stopped .

Para depurar, tentei definir LogLevel=debug em /etc/systemd/system.conf , reiniciei novamente e tentei journalctl -u openfire , que retornou a seguinte linha única:

Feb 19 11:51:19 DK-Openfire-B systemd[1]: Started OpenFire Start on Boot.

O que realmente não me ajudou. Eu suspeito que o problema é com a minha declaração ExecStart. Alguma dica sobre o que estou fazendo errado ou como obter mais informações sobre depuração?

    
por micro 19.02.2018 / 03:02

1 resposta

0

Eu percebi isso. Acabei de adicionar 'Type = forking' à seção [Service] do arquivo de unidade. O seguinte arquivo de unidade funciona como desejado:

[Unit]
Description=OpenFire Start on Boot

[Service]
Type=forking
User=openfire
ExecStart=/bin/sh -c "/opt/openfire/bin/openfire start"

[Install]
WantedBy=multi-user.target
    
por micro 20.02.2018 / 00:09