Eu tenho um serviço que é executado a cada hora (usando OnCalendar=hourly ). Isso funciona muito bem se o sistema estiver ligado 24 horas por dia, 7 dias por semana, mas ficar confuso depois de sair da suspensão/hibernação. O serviço será executado imediatamente - que é o que eu quero -, mas será executado novamente no início de cada hora, independentemente de quanto tempo tenha decorrido desde a última execução.
Existe uma maneira de configurar os temporizadores para serem executados em intervalos de 1 hora?
Você pode ver exemplos detalhados no Arch-wiki para timers systemd .
Para o seu caso, você pode usar um timer monotônico , algo como:
O cronômetro em tempo real
OnCalendar=hourly
será executado após a inicialização (para a hora perdida, por causa do seuPersistent=true
eu acho) e seguirá valores fixos de data e hora, então, como você descreve, o intervalo entre as duas primeiras execuções após a inicialização pode ser inferior a uma hora.Mas talvez você não queira usar o temporizador monotônico, embora esteja cobrindo o que você deseja sobre as suspensões, se não quiser esse comportamento ao reiniciar.
Persistent=false
serviria para o seu caso então, mas todas as execuções serão em horários fixos.