systemd status (exited) ativo de mrd6

1

Eu instalei o mrd6 (daemon de roteamento Multicast) que vem com um script de inicialização. Decidi criar uma unidade de serviço systemd para gerenciar o serviço relevante. O arquivo de unidade que eu criei é o descrito abaixo:

[Unit]
Description=Multicast routing daemon
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/sbin/mrd6 -D
PIDFile=/run/mrd6.pid
Type=simple
Restart=always
User=root

No entanto, quando eu inicio o serviço usando o systemd, recebo status Active (exited), o que significa que o systemd executou os comandos especificados no arquivo de unidade, mas não sabe se o processo está de fato em execução. Verificar os processos em execução não indica que o serviço foi iniciado.

root@debsrv:/etc/systemd/system# systemctl status mrd6.service 
● mrd6.service - Multicast routing daemon
   Loaded: loaded (/etc/systemd/system/mrd6.service; static)
   Active: active (exited) since ....

Como posso fazer o systemd manipular corretamente este serviço e ser capaz de reconhecer que o processo está funcionando?

    
por giomanda 22.03.2017 / 11:43

1 resposta

2

Você usou a opção -D para informar ao mrd6 para daemonizar, ou seja, bifurcar e ir para o segundo plano. Mas você selecionou a opção systemd Type=simple . Esta opção destina-se a serviços que não bifurcam, mas são executados em primeiro plano. Em vez disso, você deve usar Type=forking .

Lembre-se de executar systemctl daemon-reload depois de alterar o arquivo da unidade.

    
por 22.03.2017 / 14:38

Tags