1
resposta

[Dúvida] Dúvida/Análise sobre a Configuração do Timer Systemd para Monitoramento (Alternativa C)

Olá a todos,

Gostaria de discutir a resposta correta para a questão "Configuração de Timer no Systemd" e o papel da diretiva Persistent=.

A questão pede que o script de monitoramento seja executado a cada 15 minutos, mesmo com o sistema desligado. A alternativa correta é a C:

[Timer]
OnCalendar=*:0/15
Persistent=false
O ponto crucial aqui reside na interpretação da necessidade de execução constante e ininterrupta do monitoramento, versus a característica de "catch up" que a persistência oferece.

  1. Análise de OnCalendar=*:0/15
    Esta sintaxe é a maneira padrão e correta de agendar uma tarefa para ser executada a cada 15 minutos, alinhada com os múltiplos de 15 minutos de cada hora (00:00, 00:15, 00:30, 00:45, etc.).

Isso elimina a alternativa A (OnCalendar=*/15), cuja sintaxe é ambígua e, dependendo da interpretação, poderia significar a cada 15 dias ou meses.

  1. Análise de Persistent=false (O Ponto de Discussão)
    A diretiva Persistent=true é usada para garantir que, se o sistema ficar desligado e perder execuções, a tarefa seja executada IMEDIATAMENTE após a próxima inicialização (o chamado "catch up").

Por que Persistent=false é considerado o correto para o monitoramento?

Apesar de o enunciado dizer "mesmo com o sistema desligado", em um contexto de monitoramento, geralmente se prioriza a execução no próximo ciclo agendado, sem atrasos desnecessários.

Se o servidor ficou desligado por 5 dias e for ligado, um timer com Persistent=true dispararia imediatamente a execução assim que o sistema sobe. Isso poderia sobrecarregar o sistema na inicialização ou gerar logs desatualizados imediatamente.

Com Persistent=false, se o sistema for ligado às 10:05, o script não tentará compensar as execuções perdidas, mas sim aguardará a próxima janela agendada, que seria às 10:15. Isso é um comportamento mais seguro e previsível para serviços críticos de monitoramento.

A frase "mesmo com o sistema desligado" no enunciado deve ser interpretada como a necessidade de o timer ser de tempo real (OnCalendar=), e não um timer monotônico (OnBootSec=, que para quando o sistema desliga), e que a tarefa deve continuar seu ciclo após o reboot, e não a necessidade estrita de "catch up".

A alternativa B (Persistent=true) seria a correta se a prioridade fosse a garantia estrita de que nenhuma execução fosse perdida, mas a C reflete a prática de agendamento limpo e previsível após um desligamento.

Gostaria de ouvir a opinião de vocês sobre esta interpretação de Persistent=false em um cenário de monitoramento.

Este texto permite que você demonstre conhecimento na sintaxe (OnCalendar=*:0/15) e abra uma discussão sobre a interpretação conceitual de Persistent em um cenário de monitoramento, explicando por que false pode ser a resposta correta nesse contexto específico.

1 resposta

Olá João.
Analise interessante.
Deixa ver se entendi!
No contexto de systemd timers, se o sistema estiver desligado durante o horário agendado, o timer deve executar o serviço assim que o sistema for iniciado novamente, compensando a execução perdida, ou seja, o famoso "catch-up".
E quem garante isso é justamente a diretiva:

  • Persistent=true
    Portanto, segundo a leitura literal e técnica do enunciado, o comportamento desejado é o do timer persistente.
    A discussão sobre Persistent=false é conceitualmente válida e em certos ambientes de monitoramento contínuo (por exemplo, quando o script não precisa compensar execuções antigas), realmente se evita que o serviço rode imediatamente após um reboot, para não sobrecarregar o sistema.
    Porém, o enunciado não sugere essa preocupação de carga.
    Ele apenas enfatiza a necessidade de garantir a execução mesmo se o sistema estiver desligado, e isso só é possível com Persistent=true.
    OnCalendar=*:0/15 executa o script a cada 15 minutos, e Persistent=true garante que, se o sistema estiver desligado no momento agendado, a tarefa será executada assim que ele for ligado novamente.
    Se o enunciado tivesse pedido execução regular e previsível, sem compensações após reboot, aí sim estaria correto com Persistent=false.
    Comente ai qualquer duvida.
    Bons estudos.