Systemd Timer kann nicht gestartet werden

Sep 11 2020

Ich habe die folgende Systemd-Timer-Konfiguration

[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

Beim Versuch, den Timer zu starten, wird folgende Fehlermeldung angezeigt:

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

Ich habe versucht, den Zeitstempel mit zu überprüfen, systemd-analyze calendar "Mon..Fri *-*-* 13..23:5,30,45:00"aber meine Version scheint diese Option nicht zu haben. Es kehrt zurückUnknown operation 'calendar'.

Wenn Sie versuchen, auf einem anderen Server zu arbeiten, auf dem die Kalenderoption verfügbar ist, scheint dies ein gültiger Zeitstempel zu sein.

$ 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

Der Server, auf dem es nicht funktioniert, ist CentOS 7 und der Server, auf dem es funktioniert, ist Ubuntu 18.04 Minimal.

Antworten

1 StephenKitt Sep 12 2020 at 15:24

Die unter CentOS 7 verfügbare Version von systemd unterstützt keine mit definierten Bereichen ... 13..23kann ausgedrückt werden als 13/1(Stunden ab 13 und dann jede Stunde), aber ich denke, Mon..Frikann daher nur als Liste der Tage ausgedrückt werden

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

wird

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

Vielen Dank an alle, die geantwortet haben. Für mich war die beste Option, systemd mit einem Backport von Facebook zu aktualisieren, den ich hier gefunden habe . Auf diese Weise kann ich neuere Funktionen nutzen, anstatt Problemumgehungen zu verwenden.

Nach dem Update von 219 auf 231 funktionierte es ohne Probleme. Die grundlegenden Update-Anweisungen in diesem Repo lauten wie folgt:

Installationsanleitung

  1. Stellen Sie sicher, dass Sie / etc / selinux / config bearbeiten und SELinux vor dem Update auf "Zulässig" setzen, da Ihr System sonst nicht mehr startet!
  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. Starten Sie neu.