É melhor usar o Restart & RestartSec da unidade de serviço do systemd ou usar uma unidade temporizada systemd?

5

Eu tenho alguns scripts automatizados internos que estão sendo executados em intervalos periódicos. Um é a cada cinco minutos, o outro é a cada minuto. Eles realmente não precisam ser executados no ponto; por exemplo. Eu não me importo se eles correm às 12:00, 12:05, etc, ou às 12:03, 12:08, etc, eu só preciso de um intervalo constante.

Atualmente, eu tenho o crontab executando esses scripts nos intervalos especificados. No entanto, na mesma máquina, também tenho arquivos internos personalizados da unidade de serviço do systemd. Eu estava curioso para saber se seria melhor mover meus scripts para a unidade de serviço systemd & arquivos de timer ou apenas use os arquivos da unidade de serviço do systemd com Restart & Diretivas RestartSec.

Deixe-me saber se preciso reformular algo ou se não estou claro.

Especificamente, a definição para unidades systemd.service traduz Restart=always e RestartSec=300 para ser sinônimo como "sempre executado a cada cinco minutos, ignorando o código de saída da execução anterior". No entanto, há também a que pode ser configurada para fazer o mesmo, mas provavelmente com códigos de saída específicos, como saída bem-sucedida apenas.

Estou procurando prós e contras de ambos.

Obrigado!

    
por Carl Bennett 08.07.2014 / 03:37

1 resposta

11

Eu recomendo usar um gerenciador de processos para fazer seu trabalho. Felizmente você tem o melhor gerenciador de processos de todos os tempos, systemd . Aos meus olhos, trata-se de semântica, mesmo que ambas as soluções estejam funcionando para o seu caso.

  • Use unidades temporizadas para agendamentos do tipo cron que você está falando.
  • Use instruções de reinicialização para especificar uma política de reinicialização de uma tarefa que termina inesperadamente. Isso significa que você ainda pode definir uma política de reinicialização para suas unidades temporizadas, caso elas falhem. Lembre-se de que a reinicialização de unidades insere rapidamente estados com falha, porque eles atingem rapidamente um tempo limite de espera, se você não definir RestartSec maior que 1.
por 11.10.2014 / 02:13