
OpenBSD Daemons registrieren
« | 31 Mar 2024 | »OK, FreeBSD und NetBSD verwalten ihre Daemons fast identisch.
Perfekt! Somit kann ich mit einem Daemon-Script-Skelett alle BSDs behandeln.
Wieder falsch!
Denn OpenBSD
setzt auf “leicht andere” Variablennamen.
Und wieder fließen weitere ifdef XXXBSD
statements in meine Codebase.
Ich hätte erwartet, dass OpenBSD die “antiksten” Scripts mit dem geringsten
Ausbau an gemeinsamen Funktionen bereitstellt.
Doch Fehlanzeige.
OpenBSD setzt auf Funktionen anstatt von Variablen und wirkt damit fast objektorientiert und modern.
Ein Beispiel-Script sieht so aus:
Hier schreibt man also rc_*
Funktionen um die notwendigen Schritte für’s
Starten, Stoppen und Status-Abfragen ausführen zu lassen.
Wenn aber rc_check()
und rc_stop()
weggelassen werden, so versucht
rc_cmd
diese Funktionalität “handelsüblich” auszuführen.
Das Tool rcctl
erhält in OpenBSD auch noch ein paar Zusatzfunktionen:
rcctl start|stop|status daemon_name
verhält sich “wie gewohnt”.rcctl enable daemon_name
aktiviert den automatischen Start beim Boot.- und
rcctl disable daemon_name
deaktiviert die Ausführung des Scripts.
Fazit
OpenBSD weicht somit vom Verhalten von Free/NetBSD ab, tut dies aber in einer mir sehr sympathischen Art und Weise.
Wenn ein minimales Init-Script nur noch so aussieht:
dann hat OpenBSD für mich eindeutig den Init-Script-Contest gewonnen.
Wie auch immer … im GATE Framework sind meine Prozesse ja eigenverantwortlich, somit nutzen die 3 Funktionen meinen Daemon-Prozess selbst um den Status zu ermitteln.