Systemd Timer kann nicht gestartet werden
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
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
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
- 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!
# 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# yum update systemd- Starten Sie neu.