Inicie o Script Recursivo como unidade systemd

0

Eu quero executar um script na inicialização. O script é recursivo e chama a si próprio.
Quando adicionei a unidade systemd para o mesmo, ela está em execução, mas foi interrompida em 1 min devido a DefaultTimeoutStartSec . Assume que o meu script ainda não foi iniciado.

A seguir, o arquivo de serviço que criei

    [Unit]
    Description = My Desc
    After = network.target

    [Service]
    Type = forking
    ExecStart = /root/my_recursive_script.sh

    [Install]
    WantedBy = multi-user.target

Eu sei que posso fazer esse serviço funcionar adicionando TimeoutSec ao infinito, mas isso seria uma solução alternativa. Quando eu executo meu serviço com

    systemctl start myservice.service 

não sai do cursor até o tempo limite de encontro.

  1. Qual é a maneira correta de fazer com que as unidades systemd funcionem com script recursivo?
  2. Preciso fazer alterações no meu script para torná-lo executável como o daemon?
por Manthan Tripathi 08.11.2017 / 16:36

1 resposta

3

O problema é que você definiu o tipo de serviço como forking . O Systemd está esperando que você ExecStart seja bifurcado para o plano de fundo antes de continuar. Você precisa alterar o tipo para simple . Consulte o manual

    
por 08.11.2017 / 16:46