Das FreeBSD-Handbuch
Zurück | Kapitel 11. Konfiguration und Tuning | Weiter

# 11.7. Das rc-System für Systemdienste

Beigetragen von Tom Rhodes.

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 <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>.