it-swarm.com.de

Systemd Timer alle 15 Minuten

Ich versuche, einen Systemd-Timer zu erstellen, der alle 15 Minuten ausgeführt wird. Gerade habe ich:

  • timer-fifteen.timer:

    [Unit]
    Description=15min timer
    
    [Timer]
    OnBootSec=0min
    OnCalendar=*:*:0,15,30,45
    Unit=timer-fifteen.target
    
    [Install]
    WantedBy=basic.target  
    
  • timer-fifteen.target:

    [Unit]
    Description=15min Timer Target
    StopWhenUnneeded=yes
    

Dies läuft immer wieder ohne anzuhalten. Muss es sein *:0,15,30,45:* stattdessen? Wie kann ich das zum Laufen bringen?

35
Lily Hahn

Ihre Syntax wird alle 15 Sekunden übersetzt, wenn Sie alle 15 Minuten möchten. IMO ist der am besten lesbare Weg:

OnCalendar=*:0/15

Eine Antwort, die Ihrer Frage am ähnlichsten ist, lautet:

OnCalendar=*:0,15,30,45

Mehr Informationen:

48
Pavel Šimerda

Entsprechend der systemd.time , der Einstellung

OnCalendar=*:0/15

übersetzt genau nach

OnCalendar=*:0,15,30,45

dh. Es aktiviert das Gerät genau zur vollen Stunde sowie um viertel nach, halb nach und viertel vor.

Abhängig von Ihrem Service ist dies möglicherweise nicht das, was Sie möchten oder was Sie in allen Fällen benötigen.

Ein Timer, der alle 15 Minuten läuft - zum Beispiel um 1:02, 1:17, 1:32, 1:47, 2:02,… - immer abhängig von der Zeit, zu der es zuletzt ausgeführt wurde - kann mit der Einstellung systemd.timer durchgeführt werden

OnUnitActiveSec=15min

Jetzt möchten Sie auch, dass das Gerät einige Zeit nach dem Start gestartet wird (es sei denn, Sie möchten das Gerät manuell aktivieren oder haben eine Abhängigkeit, die dies tut), daher sollten Sie dies möglicherweise angeben

OnBootSec=10min
OnUnitActiveSec=15min

damit das Gerät 10 Minuten nach dem Start und danach alle 15 Minuten nach dem ersten Start gestartet wird.

Zusätzlich gibt es die Einstellung OnUnitInactiveSec, die beginnt, die Zeit zu zählen, nachdem der Dienst gestoppt wurde (oder allgemeiner das Gerät inaktiviert wurde ).

14
Debilski