- Erfordert nicht, dass der PC/Server ständig eingeschaltet ist. (→ wie Anacron)
- Maximale Ausführungszeit (Option
time_limit
) - Error-Handling
- Nicht erneut versuchen
- Konfigurierbare Wartezeit
- Wartet bislang eine Stunde, bis fehlgeschlagene Jobs erneut ausgeführt werden.
- Exponential backoff
- Benachrichtigungen
- Desktop (
notify-send
) - E-Mail (bislang nur indirekt über
crontab
)
- Desktop (
- Klein und übersichtlich.
- Geschrieben in Python. :)
Wichtig ist nur, dass die main.py
von Sched regelmäßig ausgeführt wird.
Das kann zum Beispiel über einen crontab
-Eintrag erreicht werden:
* * * * * /path/to/Sched/main.py > /dev/null
Der Systemd-Daemon verhindert z.B. den Log-Spam von cron
.
TODO: --user
-Flag?
systemctl --user link $(realpath sched_daemon.service) # zu Debug-Zwecken
# systemctl --user daemon-reload
# Prüfe, ob alles funktioniert:
systemctl --user start sched_daemon.service
systemctl --user status sched_daemon.service
# Funktioniert? Dann „permanent“ starten:
systemctl --user enable sched_daemon.service
-
cron ist natürlich der Standard. Wenn ich aber z.B. täglich um 16 Uhr einen Job ausführen möchte, den PC aber erst um 20 Uhr einschalte, wird der Job nicht ausgeführt.
-
anacron löst dieses Problem, benachrichtigt aber wie auch cron nur per E-Mail. Empfehlung in diesem Zusammenhang: nullmailer.
-
jobber hat ein nettes CLI und geht super mit Fehlern um (Benachrichtigungen, exponential backoff, …). Leider fehlt die anacron-Funktionalität und das Projekt ist seit einer Weile nicht mehr aktiv.