Impossibile avviare il timer di Systemd

Sep 11 2020

Ho la seguente configurazione del timer di 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

Quando tento di avviare il timer, ricevo il seguente messaggio di errore:

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

Ho provato a controllare il timestamp con systemd-analyze calendar "Mon..Fri *-*-* 13..23:5,30,45:00"ma la mia versione non sembra avere questa opzione. RitornaUnknown operation 'calendar'.

Quando si tenta su un server diverso in cui è disponibile l'opzione calendario, sembra essere un timestamp valido.

$ 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

Il server su cui non funziona è CentOS 7 e il server su cui funziona è Ubuntu 18.04 Minimal.

Risposte

1 StephenKitt Sep 12 2020 at 15:24

La versione di systemd disponibile su CentOS 7 non supporta gli intervalli definiti con ... 13..23può essere espresso come 13/1(ore che iniziano alle 13 e poi ogni ora), ma penso che Mon..Fripossa essere espresso solo come l'elenco dei giorni, quindi

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

diventa

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

Grazie a tutti coloro che hanno risposto. Per me, l'opzione migliore era aggiornare systemd usando un backport da Facebook che ho trovato qui . In questo modo posso sfruttare le nuove funzionalità piuttosto che utilizzare soluzioni alternative.

Dopo l'aggiornamento da 219 a 231 ha funzionato senza problemi. Le istruzioni di aggiornamento di base fornite in quel repository sono le seguenti:

Istruzioni per l'installazione

  1. Assicurati di modificare / etc / selinux / config e mettere SELinux su permissive prima di aggiornare, altrimenti il ​​tuo sistema non si avvierà più!
  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. Riavvia.