SYSTEMD.TIMER(5)

BEZEICHNUNG
systemd.timer - Zeitgeber-Unit-Konfiguration

ÜBERSICHT

Zeitgeber.timer

BESCHREIBUNG

Eine Unit-Konfigurationsdatei, deren Namen auf ».timer« endet, kodiert Informationen über einen durch Systemd gesteuerten und überwachten Zeitgeber für die Zeitgeber-basierte Aktivierung.

Diese Handbuchseite führt die für diesen Unit-Typ spezifischen Konfigurationsoptionen auf. Siehe systemd.unit(5) für die gemeinsamen Optionen aller Unit-Konfigurationsdateien. Die gemeinsamen Konfigurationseinträge werden in den generischen Abschnitten [Unit] und [Install] konfiguriert. Die Zeitgeber-spezifischen Konfigurationsoptionen werden in dem Abschnitt [Timer] konfiguriert.

Für jede Zeitgeberdatei muss eine passende Unit-Datei existieren, welche die zu aktivierende Unit, wenn der Zeitgeber abläuft, beschreibt. Beispiel: Eine Zeitgeberdatei foo.timer aktiviert einen passenden Dienst foo.service. Die zu aktivierende Unit kann mit Unit= (siehe unten) gesteuert werden.

Beachten Sie, dass die Unit, die der Zeitgeber aktivieren soll, nicht neu gestartet wird, wenn sie beim Ablaufen des Zeitgebers bereits aktiv ist, sondern einfach weiterläuft. In diesem Fall gibt es kein Konzept des Startens neuer Dienste-Instanzen. Daher sind Dienste mit gesetztem RemainAfterExit= (die damit aktiv bleiben, selbst wenn sich der Hauptprozess des Dienstes beendet hat) in der Regel keine guten Kandidaten für die Aktivierung über wiederholende Zeitgeber, da sie nur einmal aktiviert werden und dann für immer verbleiben.

AUTOMATISCHE ABHÄNGIGKEITEN

  Implizite Abhängigkeiten

Die folgenden Abhängigkeiten werden implizit hinzugefügt:

    • Zeitgeber-Units erhalten automatisch eine Abhängigkeit Before= von dem Dienst, den sie aktivieren sollen.

  Standardabhängigkeiten

Die folgenden Abhängigkeiten werden hinzugefügt, es sei denn, DefaultDependencies=no ist gesetzt:

    • Zeitgeber-Units werden automatisch Abhängigkeiten vom Typ Requires= und After= von sysinit.target, eine Abhängigkeit vom Typ Before= von timers.target sowie Conflicts= und Before= von shutdown.target haben, um sicherzustellen, dass sie vor dem Herunterfahren des Systems sauber beendet werden. Nur Zeitgeber-Units, die in der frühen Systemstartphase oder spät beim Herunterfahren beteiligt sind, sollten die Option DefaultDependencies= deaktivieren.

    • Zeitgeber-Units mit mindestens einer Anweisung OnCalendar= werden eine zusätzliche Abhängigkeit After= von time-sync.target haben, um zu vermeiden, dass sie gestartet werden, bevor die Systemuhr korrekt gestellt ist.

OPTIONEN

Zeitgeberdateien müssen einen Abschnitt [Timer] enthalten, der Informationen über den durch sie definierten Zeitgeber transportiert. Die für den Abschnitt [Timer] von Zeitgeber-Units spezifischen Optionen sind die folgenden:

OnActiveSec=, OnBootSec=, OnStartupSec=, OnUnitActiveSec=, OnUnitInactiveSec=
    Definiert monotone Zeitgeber relativ zu verschiedenen Startpunkten: OnActiveSec= definiert einen Zeitgeber relativ zu dem Moment, zu dem der Zeitgeber selbst aktiviert wurde. OnBootSec= definiert einen Zeitgeber relativ zum Systemstartzeitpunkt. OnStartupSec= definiert einen Zeitgeber relativ zum erstmaligen Systemd-Startzeitpunkt. OnUnitActiveSec= definiert einen Zeitgeber relativ zur letzten Aktivierung der Unit, in der der Zeitgeber aktiviert wurde. OnUnitInactiveSec= definiert einen Zeitgeber relativ zur letzten Deaktivierung der Unit, in der der Zeitgeber aktiviert wurde.

    Mehrere Anweisungen vom gleichen oder von verschiedenen Typen können kombiniert werden. Beispielsweise ist es durch Kombination von OnBootSec= und OnUnitActiveSec= möglich, einen Zeitgeber zu definieren, der in regelmäßigen Abständen abläuft und jedes Mal einen bestimmten Dienst aktiviert.

    Die Argumente für die Anweisung sind in Sekunden konfigurierte Zeitspannen. Beispiel: »OnBootSec=50« bedeutet 50 s nach Systemstart. Das Argument kann auch Zeiteinheiten enthalten. Beispiel: »OnBootSec=5h 30min« bedeutet 5 Stunden und 30 Minuten nach Systemstart. Für Details über die Syntax von Zeitspannen, siehe systemd.time(7).

    Falls ein mit OnBootSec= oder OnStartupSec= konfigurierter Zeitgeber bereits in der Vergangenheit liegt, wenn die Zeitgeber-Unit aktiviert wird, wird er sofort ablaufen und die konfigurierte Unit wird gestartet. Dies ist bei Zeitgebern, die in anderen Anweisungen definiert sind, nicht der Fall.

    Dies sind monotone Zeitgeber, unabhängig von der allgemeinen Uhrzeit und Zeitzonen. Falls der Computer temporär suspendiert ist, stoppt auch die monotone Uhr.

    Falls einer dieser Optionen die leere Zeichenkette zugewiesen wird, wird die Liste der Zeitgeber zurückgesetzt und alle vorhergehenden Zuweisungen haben keine Auswirkung.

    Beachten Sie, dass Zeitgeber nicht notwendigerweise zu dem exakten Zeitpunkt, der mit diesen Einstellungen konfiguriert ist, auslaufen. Sie unterliegen der Einstellung AccuracySec= (siehe weiter unten).

OnCalendar=
    Definiert Echtzeit- (d.h. Wanduhr-)Zeitgeber mit Kalenderereignisausdrücken. Siehe systemd.time(7) für weitere Informationen über die Syntax von Kalenderereignisausdrücken. Abgesehen davon ist die Semantik ähnlich zu der von OnActiveSec= und verwandten Einstellungen.

    Beachten Sie, dass Zeitgeber nicht notwendigerweise zu dem exakten Zeitpunkt, der mit dieser Einstellung konfiguriert ist, auslaufen. Sie unterliegen der Einstellung AccuracySec= (siehe weiter unten).

    Kann mehr als einmal angegeben werden.

AccuracySec=
    Specify the accuracy the timer shall elapse with. Defaults to 1min. The timer is scheduled to elapse within a time window starting with the time specified in OnCalendar=, OnActiveSec=, OnBootSec=, OnStartupSec=, OnUnitActiveSec= or OnUnitInactiveSec= and ending the time configured with AccuracySec= later. Within this time window, the expiry time will be placed at a host-specific, randomized, but stable position that is synchronized between all local timer units. This is done in order to optimize power consumption to suppress unnecessary CPU wake-ups. To get best accuracy, set this option to 1us. Note that the timer is still subject to the timer slack configured via systemd-system.conf(5)'s TimerSlackNSec= setting. See prctl(2) for details. To optimize power consumption, make sure to set this value as high as possible and as low as necessary.

RandomizedDelaySec=
    Verzögert den Zeitgeber um eine zufällig gewählte, gleichmäßig verteilte Zeitspannen zwischen 0 und dem festgelegten Zeitwert. Standardmäßig 0, wodurch angezeigt wird, dass keine zufällige Verzögerung angewandt werden soll. Jede Zeitgeber-Unit wird diese Verzögerung zufällig vor jeder Iteration bestimmen und die Verzögerung wird einfach auf die nächste ablaufende Zeit addiert. Dies ist nützlich, um die Abfertigung von ähnlich konfigurierten Zeitgeberereignissen über eine bestimmte Zeitspanne auszudehnen, damit sie nicht alle gleichzeitig feuern und möglicherweise Ressourcen überlasten. Beachten Sie die Beziehung zu AccuracySec= (weiter oben): letzteres erlaubt dem Diensteverwalter, Zeitgeberereignisse innerhalb einer bestimmten Zeitspanne zusammenzuführen, um das Aufwachen zu minimieren während erstere das Gegenteil macht: sie verteilt Zeitgeberereignisse über eine Zeitspanne, damit gleichzeitiges Feuern unwahrscheinlich wird. Falls RandomizedDelaySec= und AccuracySec= zusammen verwandt werden, wird zuerst die zufällige Verzögerung addiert und dann wird das Ergebnis möglicherweise weiter verschoben, um es mit anderen, auf dem System stattfindenden Zeitgeberereignissen zusammenzuführen. Wie oben erwähnt, ist die Vorgabe für AccuracySec= 1min und für RandomizedDelaySec= 0, wodurch das Zusammenführen von Zeitgeberereignissen ermutigt wird. Um Zeitgeberereignisse optimal über eine bestimmte Zeitspanne zu verteilen, setzen Sie RandomizedDelaySec= auf einen höheren Wert und AccuracySec=1us.

Unit=
    Die Unit, die beim Ablaufen des Zeitgebers aktiviert werden soll. Das Argument ist ein Unit-Name, dessen Endung nicht ».timer« ist. Falls dieser Wert nicht festgelegt ist, ist die Vorgabe ein Dienst, der den gleichen Namen (bis auf die Endung) wie die Zeitgeber-Unit hat. (Siehe oben.) Es wird empfohlen, dass der Unit-Name, der aktiviert wird, und der Unit-Name der Zeitgeber-Unit bis auf die Endung identisch sind.

Persistent=
    Akzeptiert ein logisches Argument. Falls wahr, wird der Zeitpunkt, zu dem die Dienste-Unit das letzte Mal ausgelöst wurde, auf Platte gespeichert. Wenn der Zeitgeber aktiviert wird, wird die Dienste-Unit sofort ausgelöst, falls sie mindestens einmal in der Zeit, zu der der Zeitgeber inaktiv war, ausgelöst worden wäre. Dies ist nützlich, um verpasste Läufe, als die Maschine ausgeschaltet gewesen ist, nachzuholen. Beachten Sie, dass diese Einstellung nur für mit OnCalendar= konfigurierte Zeitgeber Wirkung entfaltet. Standardmäßig false.

WakeSystem=
    Akzeptiert ein logisches Argument. Falls wahr, wird ein ablaufender Zeitgeber dazu führen, dass das System aus dem Suspend aufwacht, falls das System suspendiert war und das System dieses unterstützt. Beachten Sie, dass dies nur sicherstellt, dass das System zu einer geeigneten Zeit aufwacht. Die Option wird nicht dafür sorgen, dass das System nach Abschluss der zu erledigenden Arbeiten wieder suspendiert wird. Standardmäßig false.

RemainAfterElapse=
    Akzeptiert ein logisches Argument. Falls wahr, wird ein abgelaufener Zeitgeber geladen bleiben und sein Zustand kann weiter abgefragt werden. Falls falsch, wird ein abgelaufener Zeitgeber, der nicht mehr ablaufen kann, entladen. Insbesondere für flüchtige Zeitgeber-Units, die nach ihrem ersten Ablaufen verschwinden sollen, ist es besonders nützlich, dies abzuschalten. Beachten Sie, dass diese Einstellung Auswirkungen auf wiederholtes Starten einer Zeitgeber-Unit, die nur einmal abläuft, hat: Falls RemainAfterElapse= eingeschaltet ist, wird sie nicht wieder gestartet und es wird zugesichert, dass sie nur einmal abläuft. Falls allerdings RemainAfterElapse= augeschaltet ist, könnte sie wieder gestartet werden, falls sie bereits abgelaufen ist, und daher mehrfach ausgelöst werden. Standardmäßig yes.

SIEHE AUCH

systemd(1), systemctl(1), systemd.unit(5), systemd.service(5), systemd.time(7), systemd.directives(7), systemd-system.conf(5), prctl(2)

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.