Scheduling aus Entwicklersicht: Cron und/oder Systemd

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
buhtz
Beiträge: 1106
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Scheduling aus Entwicklersicht: Cron und/oder Systemd

Beitrag von buhtz » 14.06.2023 09:41:41

Ich bin Teil des Maintainer Teams einer Anwendung, die im Hintergrund sehr intensiv Gebrauch macht von Debiancron (und auch Debiananacron).
In dem Kontext lese ich derzeit häufiger, man solle das ja jetzt mit Debiansystemd erledigen, weil Debiancron ja bald tot sei.

Mir geht es hier nicht um eine pro/contra Bewertung beider Varianten. Als Entwickler muss ich nehmen, was mir das System offeriert.
Vermeiden möchte ich jedoch unbedingt, dass ich hier zwei Systeme unterstütze und mein Code entsprechend komplex wird.

Ich denke es eilt nicht, weshalb ich vorerst bei cron bleiben kann. Aber wie schätzt ihr die Entwicklung ein? Bei Debian gehe ich ja stark davon aus, dass hier lange beides im System bleiben wird. Aber bei Fedora soll cron angeblich schon per default deaktiviert sein. Natürlich gibt es auch systemd-freie Distros, die ich nicht vergessen möchte.

Wie schätzt ihr die Situation derzeit ein?
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

Benutzeravatar
schorsch_76
Beiträge: 2544
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: Scheduling aus Entwicklersicht: Cron und/oder Systemd

Beitrag von schorsch_76 » 14.06.2023 09:58:59

Das cron stirbt oder aus Debian entfernt wird glaube ich ehrlich gesagt nicht. Wenn es nicht mehr in der Standardinstallation einiger Distributionen nicht mehr installiert sein könnte, kann ich mir vorstellen aber auch dort wird es im Packetmanagement verfügbar bleiben. Es gibt ja nicht nur eine cron Implementierung. Da gibt es ja etliche Versionen bzw. Implementierungen [1]

[1] https://wiki.gentoo.org/wiki/Cron#Which ... the_job.3F

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Scheduling aus Entwicklersicht: Cron und/oder Systemd

Beitrag von Meillo » 14.06.2023 10:00:06

Fuer die aufgerufenen Programme und Scripte macht es ja keinen Unterschied. Geht es dir also um automatisches Eintragen von Jobs? Oder an welcher Stelle genau betrifft das deine Arbeit?

Aus meiner Sicht sollte es keinen grossen Unterschied machen, ob ihr die Jobs mit Cron oder mit Systemd aufrufen lasst. Selbst wenn ihr das Verwalten der Jobeintraege automatisiert habt, sollte das mit einer Abstraktionsebene einfach austauschbar sein. Aber vielleicht sehe ich den Problempunkt noch nicht ganz ... :roll:

(Edit: Aus meiner Sicht sollte deine Anwendung *nicht* komplexer werden, wenn du beide Systeme unterstuetzt. Es gibt nur wenige Aktionen, die mit Jobs gemacht werden koennen, und die lassen sich sehr gut kapseln und abstrahieren. Falls du dafuer noch keine Abstraktionsschicht hast, wird's Zeit, diese auch unabhaengig der aktuellen Frage einzufuehren. Wenn du diese Schicht schon hast, dann schreibst du einfach eine zweite Implementierung des Interfaces. Die Komplexitaet des Gesamtsystems erhoeht sich dadurch so gut wie nicht. Es erhoehen sich nur die Supportszenarien.)


Zur Frage, wie ich denke, dass die Zukunft wird: Cron wird noch laaaange Zeit installierbar sein. Ob es bei einer neuen Installation standardmaessig installiert ist, ist IMO egal.
Use ed once in a while!

Benutzeravatar
paedubucher
Beiträge: 856
Registriert: 22.02.2009 16:19:02
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Schweiz
Kontaktdaten:

Re: Scheduling aus Entwicklersicht: Cron und/oder Systemd

Beitrag von paedubucher » 14.06.2023 13:15:46

Es stellt sich die Frage, wie stark ihr sonst auf systemd setzt. Habt ihr beispielsweise dateibasierte Trigger im Einstatz (z.B. Aktionen, die beim Beschreiben eines serverseitigen Git-Repos ablaufen)? Dann wäre es naheliegend, auch zeitliche Trigger (Cronjobs) mit systemd zu managen.

Oder habt ihr ein Deployment, wo irgendwo noch ein anderes Unix involviert ist? Wir haben beispielsweise noch einen FreeBSD-Server, und ich bin doch recht froh, dass wir im Konfigurationsmanagementtool nur einen Mechanismus (cron) unterstützen müssen.

systemd bietet einige recht komfortable Features, wie beispielsweise neulich wegen Sommer- und Winterzeit diskutiert. (Das ist gerade dann interessant, wenn man auf dem Server noch UTC verwendet.) Vielleicht gibt es Anforderungen, die man mit systemd einfacher bedienen kann als mit cron.
Habe nun, ach! Java
Python und C-Sharp,
Und leider auch Visual Basic!
Durchaus programmiert mit heissem Bemühn.
Da steh' ich nun, ich armer Tor!
Und bin so klug als wie zuvor.

Antworten