FreeBSD verwendet die vom
rc(8)
-System bereit gestellten Startskripten beim Systemstart und für die Verwaltung von Diensten. Die Skripte sind in
/etc/rc.d
abgelegt und bieten grundlegende Dienste an, die über die Optionen
start
,
stop
und
restart
des
service(8)
Kommandos kontrolliert werden können. Beispielsweise kann
sshd(8)
mit dem nachstehenden Kommando neu gestartet werden:
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.
natd(8)
wird zum Beispiel mit dem folgenden Eintrag in
/etc/rc.conf
aktiviert:
Wenn dort bereits die Zeile
natd_enable="NO"
existiert, ändern Sie
NO
in
YES
. Die
rc(8)
-Skripten starten, wie unten beschrieben, auch abhängige Dienste.
Da das
rc(8)
-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
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:
# service sshd onerestart
Ob ein Dienst in
/etc/rc.conf
aktiviert ist, können Sie herausfinden, indem Sie das entsprechende
rc(8)
-Skript mit der Option
rcvar
aufrufen. Dieses Beispiel prüft, ob der
sshd
-Dienst in
/etc/rc.conf
aktiviert ist:
# service sshd rcvar
# sshd
#
sshd_enable="YES"
# (default: "")
|
|
Die Zeile
# sshd
wird von dem Kommando ausgegeben; sie kennzeichnet nicht die Eingabeaufforderung von
root
.
|
Ob ein Dienst läuft, kann mit
status
abgefragt werden. Das folgende Kommando überprüft, ob
sshd
auch wirklich gestartet wurde:
# service 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(8)
-System gestartet. Zum Beispiel aktiviert das Skript
/etc/rc.d/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.
Dieses Skript wird während des Systemstarts ausgeführt und führt eine Überprüfung der Dateisysteme im Hintergrund durch.
Viele Systemdienste hängen von anderen Diensten ab.
yp(8)
und andere RPC-basierende Systeme hängen beispielsweise von dem
rpcbind
-Dienst 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:
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. Ein Skript, das dieses Schlüsselwort enthält wird
nach
den angegebenen Diensten ausgeführt.
-
BEFORE
: Zählt Dienste auf, die auf diesen Dienst angewiesen sind. Ein Skript, dass dieses Schlüsselwort enthält 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.
11.4.1. Systemspezifische Konfiguration
Informationen zur Systemkonfiguration sind hauptsächlich in
/etc/rc.conf
, die meist beim Start des Systems verwendet wird, abgelegt. Sie enthält die Konfigurationen für die
rc*
Dateien.
In
rc.conf
werden die Vorgabewerte aus
/etc/defaults/rc.conf
überschrieben. Die Vorgabedatei sollte nicht editiert werden. Stattdessen sollten alle systemspezifischen Änderungen in
rc.conf
vorgenommen werden.
Um den administrativen Aufwand gering zu halten, existieren in geclusterten Anwendungen mehrere Strategien, globale Konfigurationen von systemspezifischen Konfigurationen zu trennen. Der empfohlene Weg hält die globale Konfiguration in einer separaten Datei z.B.
/etc/rc.conf.local
. Zum Beispiel so:
-
/etc/rc.conf
:
sshd_enable="YES"
keyrate="fast"
defaultrouter="10.1.1.254"
-
/etc/rc.conf.local
:
hostname="node1.example.org"
ifconfig_fxp0="inet 10.1.1.1/8"
/etc/rc.conf
kann dann auf jedes System mit rsync oder puppet verteilt werden, während
/etc/rc.conf.local
dabei systemspezifisch bleibt.
Bei einem Upgrade des Systems wird
/etc/rc.conf
nicht überschrieben, so dass die Systemkonfiguration erhalten bleibt.
|
|
/etc/rc.conf
und
/etc/rc.conf.local
werden von
sh(1)
gelesen. Dies erlaubt es dem Systemadministrator, komplexe Konfigurationsszenarien zu erstellen. Lesen Sie
rc.conf(5)
, um weitere Informationen zu diesem Thema zu erhalten.
|