rcorder
und die rc Scripts zusammenarbeitenDie rc Dateien des Systems liegen in /etc und sind:
/etc/rc /etc/rc.conf /etc/rc.d/* /etc/rc.lkm /etc/rc.local /etc/rc.shutdown /etc/rc.subr /etc/defaults/* /etc/rc.conf.d/*
Wichtige Scripts mit Basis-Funktionalität:
/etc/rc
- führt die Scripts in /etc/rc.d
aus/etc/rc.subr
- enthält gemeinsame Funktionen der rc Scripts/etc/shutdown
- führt die Scripts in /etc/rc.d in umgekehrter Reihenfolge ausWeitere Scripts ausserhalb des rc.d Verzeichnisses:
/etc/rc.lkm
- verwaltet Loadable Kernel Moduls/etc/rc.local
- das (nahezu) letzte Script in der Bootsequenz, Systemeigene Daemons können hierdurch gestartet werden
Hier ein Beispiel wie der Apache Web Server in /etc/rc.local
gestartet wird:
if [ -f /usr/pkg/etc/rc.d/apache ]; then /usr/pkg/etc/rc.d/apache start fi
Im /etc/defaults Verzeichnis befinden sich die standardgemässen Einstellungen für NetBSD -- diese sollten nicht geändert werden. Die einzige Datei von Interesse in diesem Zusammenhang ist rc.conf: sie beinhaltet die Standard rc Konfiguration des NetBSD Systems. Um eine dieser Einstellungen zu überschreiben, kann sie in /etc/rc.conf geändert werden. Sollten Sie z.B. den Secure Shell Daemon starten wollen, sähe dies so aus:
# cd /etc; grep ssh defaults/rc.conf sshd=NO sshd_flags="" # echo "sshd=YES" >> rc.conf
Natürlich können Sie die Datei auch mit Ihrem bevorzugten Editor bearbeiten um diese und andere Änderungen vorzunehmen.
Wahlweise können Sie rc.conf
auch auf diese Weise erstellen:
# cd /etc/defaults # cat rc.conf >> ../rc.conf
Anschliessend können Sie alle Einstellungen, die Sie nicht benötigen, dort entfernen.
Des Weiteren kann das /etc/rc.conf.d/
Verzeichnis auch für
Scripts weiterer Anbeiter verwendet werden.
Die eigentlichen Scripts, welche die verschiedenen Services kontrollieren befinden sich in /etc/rc.d. Im Folgenden finden Sie alle rc Scripts am Beispiel von NetBSD 1.5:
DAEMON LOGIN NETWORK SERVERS accounting amd apmd bootconf.sh bootparams ccd cleartmp cron dhclient dhcpd dhcrelay dmesg fsck gated inetd |
ipfilter ipmon ipnat ipsec kdc ldconfig lkm1 lkm2 lkm3 local lpd mopd motd mountall mountcritlocal mountcritremote mountd mrouted named |
network nfsd nfslocking ntpd ntpdate postfix ppp pwcheck quota raidframe rarpd rbootd root route6d routed rpcbind rtadvd rtsold rwho |
savecore screenblank securelevel sendmail sshd swap1 swap2 sysctl sysdb syslogd timed ttys virecover wscons xdm xfs ypbind yppasswdd ypserv |
Wenn ein Script in /etc/rc.conf aktiviert wurde, kann es auch direkt von der Kommandozeile gestartet werden, so zum Beispiel wenn der Administrator die Secure Shell starten will:
# /etc/rc.d/sshd start Starting sshd.
Die rc scripts akzeptieren folgende Argumente:
Wenn zum Beispiel ein neuer Eintrag in die named Datenbank eingefügt
wurde, kann named
wie folgt neu gestartet werden:
# /etc/rc.d/named restart Stopping named. Starting named.
Ein etwas komplexeres Beispiel wäre, wenn die ipfilter Regeln eines Firewalls sowie die ipnat Konfiguration geändert wurden und der Secure Shell Server den Verschlüsselungsalgorithmus gewechselt hat:
# cd /etc/rc.d # ./ipfilter restart; ./ipnat restart; ./sshd restart
rcorder
und die rc Scripts zusammenarbeiten
(zurück)
Nach dem System Manager's Manual ist rcorder
"entwickelt, um eine
Abhängigkeits-Ordnung voneinander abhängiger Dateien
auszudrucken." Im Grunde ermittelt es die Reihenfolge der
Ausführung. Unter einigen Unix Systemen wird dies durch eine
Numerierung der Dateien oder durch bestimmte sog. run level
Verzeichnisse erreicht. Dies wird leicht unübersichtlich. Unter NetBSD
wird dies durch explizites Erwähnen der Abhänigkeiten und der
gelieferten Services in jedem rc Script erreicht.
Ein rc Script enthält daher eine Reihe der folgenden Schlüsselwörter:
Diese bestimmen die Abhängigkeiten der entsprechenden rc Scripts wodurch
rcorder
sich leicht entweder "hoch" oder
"herunter", entsprechend der Situation, arbeiten kann. Hier ein
Beispiel des nfsd
rc Scripts:
. . . # PROVIDE: nfsd # REQUIRE: mountd . /etc/rc.subr . . .
Der nfsd
Service wird durch dieses Script angeboten (PROVIDE),
doch es benötigt (REQUIRE) den mountd
Service.
kill
-HUP
oder Herumtüfteleien mit /var/run
Dateien.
|
|