Systemd/Timers: Unterschied zwischen den Versionen
Tuxnix (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Tuxnix (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 56: | Zeile 56: | ||
==== relative Zeitangaben ==== | ==== relative Zeitangaben ==== | ||
Sind abhängig von anderen Ereignissen | Sind abhängig von anderen Ereignissen | ||
* OnActiveSec= | * OnActiveSec= Zeitspanne seit Aktivierung des Timers selbst | ||
* OnBootSec= | * OnBootSec= Zeitspanne seit dem Booten des Rechners | ||
* OnStartupSec= | * OnStartupSec= Zeitspanne seit dem ersten Start von systemd | ||
* OnUnitActiveSec= | * OnUnitActiveSec= Zeitspanne seit dem letzten Start des Timers | ||
* OnUnitInactiveSec= | * OnUnitInactiveSec= Zeitspanne seit Inaktivität der Timer-Unit | ||
(Hier müssen noch | (Hier müssen teilweise noch treffendere Vormulierungen gefunden werden) | ||
Folgende Einheiten können für die rel. Zeitangaben gewählt werden: | |||
usec, us | |||
msec, ms | |||
seconds, second, sec, s | |||
minutes, minute, min, m | |||
hours, hour, hr, h | |||
days, day, d | |||
weeks, week, w | |||
months, month, M (definiert als 30.44 Tage) | |||
years, year, y (definiert als 365.25 Tage) | |||
siehe auch ''man systemd.time''. | |||
* RandomizedDelaySec= Wird verwendet damit nicht mehrere Timer gleichzeitig loslegen. default ist 0. | |||
Ohne Verwendung einer Einheit werden alle Angaben als Sekunden gewertet. | |||
==== absolute Zeitangaben ==== | ==== absolute Zeitangaben ==== | ||
* OnCalendar= | * OnCalendar= absolute Zeitangabe | ||
* Persistent=true - bewirkt, dass ein versäumter Jobs beim nächsten Rechnerstart unverzüglich nachgeholt wird. | |||
* AccuracySec= Die Zeitspanne zum Ausführen beträgt als default 1 Minute. Durch Verwendung von AccuracySec können kleinere Zeitspannen gewählt werden. | |||
Die absolute Zeitangabe hat folgende Syntax: | |||
Thu,Fri 2012-*-1..5 11:12:13 | |||
Das obige Beispiel besagt: Um 11:12:13 Uhr, zwischen dem 1. und 5. Tag, aller Monate, des Jahres 2012, jedoch ausschließlich nur an Donnerstagen und Freitagen. | |||
Die Angabe eines Wochentags erfolgt in Englisch. Sie ist optional. | |||
Jede Rubrik kann mit "," oder ".." versehen werden oder durch "*" ersetzt werden. | |||
Weiteres siehe ''man systemd.time''. | |||
=== [Install] === | === [Install] === | ||
Zeile 77: | Zeile 99: | ||
=== [Service] === | === [Service] === | ||
* Type=oneshot | |||
* Nice=19 | |||
* IOSchedulingClass=2 | |||
* IOSchedulingPriority=7 | |||
* Environment="ABRT_IGNORE_PYTHON=1" | |||
* ExecStart= Angabe eines Befehls oder eines ausführbaren Scripts. | * ExecStart= Angabe eines Befehls oder eines ausführbaren Scripts. | ||
Version vom 17. März 2017, 10:23 Uhr
„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= Zeitspanne seit Aktivierung des Timers selbst
- OnBootSec= Zeitspanne seit dem Booten des Rechners
- OnStartupSec= Zeitspanne seit dem ersten Start von systemd
- OnUnitActiveSec= Zeitspanne seit dem letzten Start des Timers
- OnUnitInactiveSec= Zeitspanne seit Inaktivität der Timer-Unit
(Hier müssen teilweise noch treffendere Vormulierungen gefunden werden)
Folgende Einheiten können für die rel. Zeitangaben gewählt werden:
usec, us msec, ms seconds, second, sec, s minutes, minute, min, m hours, hour, hr, h days, day, d weeks, week, w months, month, M (definiert als 30.44 Tage) years, year, y (definiert als 365.25 Tage)
siehe auch man systemd.time.
- RandomizedDelaySec= Wird verwendet damit nicht mehrere Timer gleichzeitig loslegen. default ist 0.
Ohne Verwendung einer Einheit werden alle Angaben als Sekunden gewertet.
absolute Zeitangaben
- OnCalendar= absolute Zeitangabe
- Persistent=true - bewirkt, dass ein versäumter Jobs beim nächsten Rechnerstart unverzüglich nachgeholt wird.
- AccuracySec= Die Zeitspanne zum Ausführen beträgt als default 1 Minute. Durch Verwendung von AccuracySec können kleinere Zeitspannen gewählt werden.
Die absolute Zeitangabe hat folgende Syntax:
Thu,Fri 2012-*-1..5 11:12:13
Das obige Beispiel besagt: Um 11:12:13 Uhr, zwischen dem 1. und 5. Tag, aller Monate, des Jahres 2012, jedoch ausschließlich nur an Donnerstagen und Freitagen.
Die Angabe eines Wochentags erfolgt in Englisch. Sie ist optional. Jede Rubrik kann mit "," oder ".." versehen werden oder durch "*" ersetzt werden.
Weiteres siehe man systemd.time.
[Install]
- WantedBy=basic.target
noch k.w.T.
[Service]
- Type=oneshot
- Nice=19
- IOSchedulingClass=2
- IOSchedulingPriority=7
- Environment="ABRT_IGNORE_PYTHON=1"
- 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