Não consigo iniciar o Systemd Timer

Sep 11 2020

Eu tenho a seguinte configuração de temporizador systemd

[Unit]
Description=Timer for Service

[Timer]
Unit=service-unit.service
OnCalendar=Mon..Fri *-*-* 13..23:0,15,30,45:00
# *-*-* means every day and 10:00:00 is the time of day (UTC)

[Install]
WantedBy=timers.target

Ao tentar iniciar o cronômetro, recebo a seguinte mensagem de erro:

Failed to parse calendar specification, ignoring: Mon..Fri *-*-* 13..23...5,30,45:00 service-timer.timer lacks value setting. Refusing.

Tentei verificar o carimbo de data / hora com, systemd-analyze calendar "Mon..Fri *-*-* 13..23:5,30,45:00"mas minha versão parece não ter essa opção. RetornaUnknown operation 'calendar'.

Ao tentar em um servidor diferente, onde a opção de calendário está disponível, parece ser um carimbo de data / hora válido.

$ sudo systemd-analyze calendar "Mon..Fri *-*-* 13..23:0,15,30,45:00"

  Original form: Mon..Fri *-*-* 13..23:0,15,30,45:00
Normalized form: Mon..Fri *-*-* 13..23:00,15,30,45:00
    Next elapse: Thu 2020-09-10 14:00:00 EDT
       (in UTC): Thu 2020-09-10 18:00:00 UTC
       From now: 1min 21s left

O servidor onde não está funcionando é o CentOS 7 e o servidor onde está funcionando é o Ubuntu 18.04 Minimal.

Respostas

1 StephenKitt Sep 12 2020 at 15:24

A versão do systemd disponível no CentOS 7 não suporta spans definidos com ... 13..23pode ser expresso como 13/1(horas começando às 13 e depois a cada hora), mas acho Mon..Frique só pode ser expresso como a lista de dias, portanto

OnCalendar=Mon..Fri *-*-* 13..23:0,15,30,45:00

torna-se

OnCalendar=Mon,Tue,Wed,Thu,Fri *-*-* 13/1:0,15,30,45:00
MosesWynn Sep 17 2020 at 03:04

Obrigado a todos aqueles que responderam. Para mim, a melhor opção era atualizar o systemd usando um backport do Facebook que encontrei aqui . Dessa forma, posso aproveitar os recursos mais recentes em vez de usar soluções alternativas.

Depois de atualizar de 219 para 231, funcionou sem problemas. As instruções básicas de atualização fornecidas nesse repo são as seguintes:

instruções de instalação

  1. Certifique-se de editar / etc / selinux / config e colocar o SELinux no modo permissivo antes de atualizar, caso contrário, seu sistema não inicializará mais!
  2. # wget https://copr.fedorainfracloud.org/coprs/jsynacek/systemd-backports-for-centos-7/repo/epel-7/jsynacek-systemd-backports-for-centos-7-epel-7.repo -O /etc/yum.repos.d/jsynacek-systemd-centos-7.repo
  3. # yum update systemd
  4. Reinício.