Serivce é reiniciado a cada 90 segundos

0

Nós escrevemos um script de serviço para iniciar um executável na inicialização do sistema. O script de serviço é reiniciado a cada 90 segundos em uma base consistente. Se desabilitarmos o serviço e executarmos o executável, ele será executado conforme o esperado. Estamos usando o Yocoto Linux em um Intel Edison.

Aqui está o nosso script de inicialização.

[Unit]
Description=patsuit
After=network-online.target
Wants=network-online.target

[Service]
WorkingDirectory=/home/root
Type=forking
ExecStart=/bin/PatDownSuitFirmware/PatDown_V3
User=root
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target
    
por joshwl2003 09.01.2017 / 17:08

1 resposta

1

Você tem uma incompatibilidade de protocolo de prontidão. Você disse ao systemd que seu programa bifurca um processo filho e depois sai do processo pai para sinalizar que está pronto. Mas, na verdade, o seu programa não faz isso. Como ele não afirmou que está pronto dentro de 90 segundos (o tempo limite de início padrão), o systemd decidiu que seu serviço falhou. Serviços com falha deixam tudo morto. Por causa de on-failure , seu serviço com falha é reiniciado e o ciclo se repete.

Use o protocolo de prontidão que descreve corretamente o que seu programa realmente faz. Isso, você não nos contou.

Leitura adicional

por 09.01.2017 / 19:26