SYSTEMD.TIMER(5)

BEZEICHNUNG
systemd.timer - Timer-Unit-Konfiguration

ÜBERSICHT

timer.timer

BESCHREIBUNG

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

Diese Handbuchsseite 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 Timer-spezifischen Konfigurationsoptionen werden in dem Abschnitt [Timer] konfiguriert.

Für jede Timer-Datei muss eine passende Unit-Datei existieren, die die zu aktivierende Unit, wenn der Timer abläuft, beschreibt. Beispiel: Eine Timer-Datei 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 Timer aktivieren soll, nicht neu gestartet wird, wenn sie beim Ablaufen des Timers 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 Timer, da sie nur einmal aktiviert werden und dann für immer verbleiben.

IMPLIZITE ABHÄNGIGKEITEN

Die folgenden Abhängigkeiten werden implizit hinzugefügt:

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

AUTOMATISCHE ABHÄNGIGKEITEN

  Implizite Abhängigkeiten

Es gibt keine impliziten Abhängigkeiten für Timer-Units.

  Standardabhängigkeiten

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

    • Timer-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 Timer-Units, die in der frühen Systemstartphase oder spät beim Herunterfahren beteiligt sind, sollten die Option DefaultDependencies= deaktivieren.

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

OPTIONEN

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

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

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

    Die Argumente für die Direktiven sind in Sekunden konfigurierte Zeitdauern. 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 Zeitdauern, siehe systemd.time(7).

    Falls ein mit OnBootSec= oder OnStartupSec= konfigurierter Timer bereits abgelaufen ist, wenn die Timer-Unit aktiviert wird, wird er sofort ablaufen und die konfigurierte Unit wird gestartet. Dies ist bei Timern, die in anderen Direktiven definiert sind, nicht der Fall.

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

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

    Note that timers do not necessarily expire at the precise time configured with these settings, as they are subject to the AccuracySec= setting below.

OnCalendar=
    Defines realtime (i.e. wallclock) timers with calendar event expressions. See systemd.time(7) for more information on the syntax of calendar event expressions. Otherwise, the semantics are similar to OnActiveSec= and related settings.

    Note that timers do not necessarily expire at the precise time configured with this setting, as it is subject to the AccuracySec= setting below.

    May be specified more than once.

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=
    Delay the timer by a randomly selected, evenly distributed amount of time between 0 and the specified time value. Defaults to 0, indicating that no randomized delay shall be applied. Each timer unit will determine this delay randomly each time it is started, and the delay will simply be added on top of the next determined elapsing time. This is useful to stretch dispatching of similarly configured timer events over a certain amount time, to avoid that they all fire at the same time, possibly resulting in resource congestion. Note the relation to AccuracySec= above: the latter allows the service manager to coalesce timer events within a specified time range in order to minimize wakeups, the former does the opposite: it stretches timer events over a time range, to make it unlikely that they fire simultaneously. If RandomizedDelaySec= and AccuracySec= are used in conjunction, first the randomized delay is added, and then the result is possibly further shifted to coalesce it with other timer events happening on the system. As mentioned above AccuracySec= defaults to 1min and RandomizedDelaySec= to 0, thus encouraging coalescing of timer events. In order to optimally stretch timer events over a certain range of time, make sure to set RandomizedDelaySec= to a higher value, and AccuracySec=1us.

Unit=
    The unit to activate when this timer elapses. The argument is a unit name, whose suffix is not ".timer". If not specified, this value defaults to a service that has the same name as the timer unit, except for the suffix. (See above.) It is recommended that the unit name that is activated and the unit name of the timer unit are named identically, except for the suffix.

Persistent=
    Takes a boolean argument. If true, the time when the service unit was last triggered is stored on disk. When the timer is activated, the service unit is triggered immediately if it would have been triggered at least once during the time when the timer was inactive. This is useful to catch up on missed runs of the service when the machine was off. Note that this setting only has an effect on timers configured with OnCalendar=. Defaults to false.

WakeSystem=
    Takes a boolean argument. If true, an elapsing timer will cause the system to resume from suspend, should it be suspended and if the system supports this. Note that this option will only make sure the system resumes on the appropriate times, it will not take care of suspending it again after any work that is to be done is finished. Defaults to false.

RemainAfterElapse=
    Takes a boolean argument. If true, an elapsed timer will stay loaded, and its state remains queriable. If false, an elapsed timer unit that cannot elapse anymore is unloaded. Turning this off is particularly useful for transient timer units that shall disappear after they first elapse. Note that this setting has an effect on repeatedly starting a timer unit that only elapses once: if RemainAfterElapse= is on, it will not be started again, and is guaranteed to elapse only once. However, if RemainAfterElapse= is off, it might be started again if it is already elapsed, and thus be triggered multiple times. Defaults to 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>.