rc.d
-Skripten werden zum Starten
von Diensten während des Systemstarts verwendet und um
den Administratoren einen Standardweg zum Anhalten und Starten
von Diensten zu bieten. Ports halten sich an dieses
systemweite rc.d
-Framework. Details zu
deren Benutzung können im rc.d Kapitel
des Handbuchs nachgelesen werden. Ausführliche
Beschreibungen der verfügbaren Befehle stehen in
rc(8) und rc.subr(8). Desweiteren gibt es einen Artikel zu
praktischen Aspekten bezüglich
rc.d
-Skripten.
Ein oder mehrere rc.d
-Skripten können installiert
werden mittels:
Skripten müssen im Unterverzeichnis
files
abgelegt und jeder Skript-Datei
muss ein .in
-Suffix hinzugefügt
werden. Standardmäßige
SUB_LIST
-Ersetzungen werden für diese
Dateien unterstützt. Die Verwendung von
%%PREFIX%%
und
%%LOCALBASE%%
wird dringend empfohlen.
Näheres zu SUB_LIST
kann im zugehörigen Kapitel
nachgelesen werden.
Für FreeBSD-Versionen, die älter als 6.1-RELEASE
sind, ist die Integration mittels rcorder(8)
möglich, indem USE_RCORDER
anstatt
USE_RC_SUBR
verwendet wird. Die Verwendung
dieser Methode ist jedoch nur notwendig, wenn der Port in die
Verzeichnisstruktur des Basissystems installiert werden kann
oder der Dienst vor den
FILESYSTEMS
-Skripten in
rc.d
des Basissystems gestartet sein
muss.
Seit FreeBSD 6.1-RELEASE sind lokale
rc.d
-Skripten (inklusive der durch Ports
installierten) im allgemeinen rcorder(8) des
Basissystems.
Beispiel eines einfachen
rc.d
-Skripts:
Solange kein guter Grund dafür besteht, einen Dienst früher starten zu lassen, sollten alle Ports-Skripten
verwenden. Falls der Port von einem bestimmten Benutzer (außer root) ausgeführt wird, ist dies zwingend.
ist im Skript oben deswegen vorhanden, weil der frei erfundene Beispiel-Port einen Dienst startet und dieser beim Herunterfahren des Systems sauber beendet werden sollte. Startete das Skript keinen persistenten Dienst, wäre dies nicht notwendig.
Für die Wertzuweisung von Variablen sollte "=" anstatt ":=" verwendet werden, da bei Ersterem nur auf einen Standardwert gesetzt wird, wenn die Variable vorher noch nicht gesetzt war, und bei Letzterem dieser gesetzt wird, auch wenn der Wert vorher Null gewesen ist. Ein Benutzer kann durchaus einen Ausdruck wie
in seiner
rc.conf.local
-Datei stehen haben, und
eine Variablenzuweisung mittels ":=" würde in
diesem Fall die Benutzerdefinition überschreiben.
Es sollten keine weiteren Skripten mit der
.sh
-Endung hinzugefügt werden.
Irgendwann wird es ein Massenumbenennen aller Skripten im
Repository geben, die immer noch diese Endung haben.
Es ist möglich, dass ein Dienst während der Deinstallation automatisch angehalten wird. Es wird empfohlen dieses Verhalten nur zu implementieren, wenn es unbedingt erforderlich ist zuerst den Dienst anzuhalten und dann die Dateien zu entfernen. Normalerweise sollte es dem Administrator überlassen werden, ob ein Dienst durch Deinstallieren angehalten werden soll. Dies betrifft auch den Vorgang des Aktualisierens.
Der Datei pkg-plist
sollte eine
Zeile wie folgt zugefügt werden:
Das Argument muss dabei mit dem Inhalt der
USE_RC_SUBR
-Variablen
übereinstimmen.
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.