2002 wurde das rc.d-System von NetBSD zum Start von
Systemdiensten in FreeBSD integriert. Die zu diesem System gehörenden Dateien sind im
Verzeichnis /etc/rc.d abgelegt. Die Skripten in diesem
Verzeichnis akzeptieren die Optionen start
, stop
und restart
. Beispielsweise kann
sshd(8) mit dem
nachstehenden Kommando neu gestartet werden:
# /etc/rc.d/sshd restart
Analog können Sie andere Dienste starten und stoppen. Normalerweise werden die Dienste beim Systemstart über Einträge in der Datei rc.conf(5) automatisch gestartet. Der Network Address Translation Dæmon wird zum Beispiel mit dem folgenden Eintrag in /etc/rc.conf aktiviert:
natd_enable="YES"
Wenn dort bereits die Zeile natd_enable="NO"
existiert,
ändern Sie einfach NO
in YES
. Die
rc-Skripten starten, wie unten beschrieben, auch abhängige Dienste.
Da das rcNG-System primär zum automatischen Starten und
Stoppen von Systemdiensten dient, funktionieren die Optionen start
, stop
und restart
nur, wenn die entsprechenden Variablen in /etc/rc.conf gesetzt sind. Beispielsweise funktioniert das Kommando
sshd restart nur dann, wenn in /etc/rc.conf die Variable sshd_enable
auf YES
gesetzt wurde. Wenn Sie die Optionen start
, stop
oder restart
unabhängig von den Einstellungen in /etc/rc.conf benutzen wollen, müssen Sie den Optionen mit dem
Präfix “one” verwenden. Um beispielsweise sshd
unabhängig von den Einstellungen in /etc/rc.conf neu zu
starten, benutzen Sie das nachstehende Kommando:
# /etc/rc.d/sshd onerestart
Ob ein Dienst in /etc/rc.conf aktiviert ist, können Sie
leicht herausfinden, indem Sie das entsprechende rc.d-Skript
mit der Option rcvar
aufrufen. Ein Administrator kann
beispielsweise wie folgt prüfen, ob der sshd-Dienst in /etc/rc.conf aktiviert ist:
# /etc/rc.d/sshd rcvar # sshd $sshd_enable=YES
Anmerkung: Die zweite Zeile (# sshd) wird vom Kommando sshd ausgegeben; sie kennzeichnet nicht die Eingabeaufforderung von root.
Ob ein Dienst läuft, kann mit der Option status
abgefragt
werden. Das folgende Kommando überprüft, ob der sshd auch
wirklich gestartet wurde:
# /etc/rc.d/sshd status sshd is running as pid 433.
Einige Dienste können über die Option reload
neu
initialisiert werden. Dazu wird dem Dienst über ein Signal mitgeteilt, dass er seine
Konfigurationsdateien neu einlesen soll. Oft wird dazu das Signal SIGHUP verwendet. Beachten Sie aber, dass nicht alle Dienste diese
Option unterstützen.
Die meisten Systemdienste werden beim Systemstart vom rc.d-System gestartet. Zum Beispiel aktiviert das Skript bgfsck die Prüfung von Dateisystemen im Hintergrund. Das Skript gibt die folgende Meldung aus, wenn es gestartet wird:
Starting background file system checks in 60 seconds.
Viele Systemdienste hängen von anderen Diensten ab. NIS und andere RPC-basierende Systeme hängen beispielsweise von dem rpcbind-Dienst (portmapper) ab. Im Kopf der Startskripten befinden sich die Informationen über Abhängigkeiten von anderen Diensten und weitere Metadaten.Mithilfe dieser Daten bestimmt das Programm rcorder(8) beim Systemstart die Startreihenfolge der Dienste.
Folgende Schlüsselwörter müssen im Kopf aller Startskripten verwendet werden (da sie von rc.subr(8) zum “Aktivieren” des Startskripts benötigt werden:
PROVIDE: Gibt die Namen der Dienste an, die mit dieser Datei zur Verfügung gestellt werden.
Die folgenden Schlüsselwörter können im Kopf des Startskripts angegeben werden. Sie sind zwar nicht unbedingt notwendig, sind aber hilfreich beim Umgang mit rcorder(8):
REQUIRE: Gibt die Namen der Dienste an, von denen dieser Dienst abhängt. Diese Datei wird nach den angegebenen Diensten ausgeführt.
BEFORE: Zählt Dienste auf, die auf diesen Dienst angewiesen sind. Diese Datei wird vor den angegebenen Diensten ausgeführt.
Durch das Verwenden dieser Schlüsselwörter kann ein Administrator die Startreihenfolge von Systemdiensten feingranuliert steuern, ohne mit den Schwierigkeiten des “runlevel”-Systems anderer UNIX® Systeme kämpfen zu müssen.
Weitere Informationen über das rc.d-System finden sich in den Manualpages zu rc(8) sowie rc.subr(8). Wenn Sie Ihre eigenen rc.d-Skripte schreiben wollen, sollten Sie den Artikel Practical rc.d scripting in BSD lesen.
Zurück | Zum Anfang | Weiter |
Programme mit cron starten | Nach oben | Einrichten von Netzwerkkarten |
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<[email protected]>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <[email protected]>.