Systemd/Timers
„Systemd/Timers“ wurde von Tuxnix (Diskussion) als in Bearbeitung markiert. Um Bearbeitungskonflikte zu vermeiden, kontaktiere Tuxnix (Diskussion) bitte, bevor du den Artikel bearbeitest.
Timer bieten die Möglichkeit Aufgaben zeitlich zu steuern. Die Timer-Unit bestehen aus einer .timer
und einer .service
Datei.
Sie untersteht systemd und muss mit dem systemctl Befehl aktiviert werden. Eine Alternative hierzu bietet cron.
Beispiel
Die .timer
Datei
# Datei /usr/lib/systemd/system/foo.timer [Unit] Description=foo [Timer] OnBootSec=1h OnUnitInactiveSec=1d [Install] WantedBy=basic.target
Die .service
Datei
# Datei /usr/lib/systemd/system/foo.service [Unit] Description=foo [Service] ExecStart=/usr/bin/foo
Als [Service] kann ein Befehl oder ein ausführbares Script genutzt werden. Service- und Timerdatei werden in /usr/lib/systemd/system/ abgelegt und müssen vor dem . (Punkt) den gleichen Namen tragen.
De-/Aktivierung
systemctl enable --now foo.timer
Mit enable --now startet der Timer unverzüglich und permanent, sodass er auch nach einem Neustart aktiv ist. Ohne --now werden enable, disable oder reenable erst nach einem reboot wirksam. start und stop hingegen, haben lediglich Auswirkungen auf die laufende Sitzung.
systemctl reenable --now foo.timer
Genügt damit eine nachträgliche Veränderung der Timer-Unit wirksam wird.
Management
systemctl list-timers --all
Listet alle Timer auf. Sollen nur die aktiven Timer angezeigt werden genügt ein systemctl list-timers
Details
Nun zu den Kleinigkeiten innerhalb der .timer
und .service
Dateien und welche Angaben hier getätigt werden können.
[Unit]
- Description= hier wird der Name der Timer-Unit angegeben. Dieser Name erscheint bei der Abfrage mit systemctl list-timers.
noch k.w.T.
[Timer]
relative Zeitangaben
Sind abhängig von anderen Ereignissen
- OnActiveSec= Intervall seit Aktivierung des Timers selbst
- OnBootSec= Intervall seit dem Booten des Rechners
- OnStartupSec= Intervall seit dem ersten Start von systemd
- OnUnitActiveSec= Intervall seit dem letzten Start des Timers
- OnUnitInactiveSec= Intervall seit Inaktivität der Timer-Unit
(Hier müssen noch bessere Vormulierungen gefunden werden)
absolute Zeitangaben
- OnCalendar=
noch k.w.T.
Zeiteinheiten
Ohne Verwendung einer Einheit werden alle Angaben als Sekunden gewertet.
noch k.w.T.
[Install]
- WantedBy=basic.target
noch k.w.T.
[Service]
- ExecStart= Angabe eines Befehls oder eines ausführbaren Scripts.
Weblinks
- Michael Kofler Blog Anleitung
- Fedora Project wiki page on systemd calendar timers
- Gentoo wiki section on systemd timer services
- freedesktop.orgMan page timer