Hoofdstuk 7. Het rc.d systeem

Inhoudsopgave

7.1. De rc.d configuratie
7.2. De rc.d scripts
7.3. De rol van rcorder en de rc scripts
7.4. Meer informatie

Sinds NetBSD versie 1.5 zijn de initialisatiescripts van het systeem aangepast, zodat het mogelijk werd controle te krijgen over diensten met rc scripts. Dit hoofdstuk is biedt overzicht van de rc configuratie op NetBSD en nieuwere versies.

7.1. De rc.d configuratie

De rc bestanden voor het systeem zijn opgeslagen in /etc, dit zijn:

  • /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/*

Laten we eerst kijken naar de scripts die de controle over de initialisatie hebben en scripts die hier ondersteuning bij geven:

  • /etc/rc start de scripts in /etc/rc.d

  • /etc/rc.subr bevat een aantal functies die veel door rc scripts gebruikt worden.

  • /etc/shutdown roept de scripts in /etc/rc.d in omgekeerde volgorde aan.

Andere scripts buiten de rc.d directory:

  • /etc/rc.lkm laadt Loadable Kernel Modules in het geheugen of verwijdert ze.

  • /etc/rc.local is bijna het laatste script dat aangeroepen wordt tijdens het opstarten, lokale daemons kunnen hier toegevoegd worden.

Dit is een voorbeeld van een systeem waarop de apache webserver toegevoegd is aan /etc/rc.local:

if [ -f /usr/pkg/etc/rc.d/apache ]; then
	/usr/pkg/etc/rc.d/apache start
fi

De /etc/defaults directory bevat de standaardinstellingen voor NetBSD, de inhoud hiervan moet niet veranderd worden. In de rc context is alleen rc.conf interessant, dit is het standaard rc configuratiebestand van NetBSD. Om de standaardinstellingen aan te passen kunt u een optie aan /etc/rc.config toevoegen, die de standaardinnstelling overschrijft. Als u bijvoorbeeld de Secure Shell Daemon aan wilt zetten:

# cd /etc; grep ssh defaults/rc.conf
sshd=NO                 sshd_flags=""
# echo "sshd=YES" >> rc.conf

Of bewerk dit bestand met uw favoriete editor. Hetzelfde kan gedaan worden met elke standaardinstelling die veranderd moet worden.

Een andere manier om rc.conf gemakkelijk aan te passen is het volgende te doen:

# cd /etc/defaults
# cat rc.conf >> ../rc.conf

Pas vervolgens rc.conf aan op uw wensen.

Tenslotte, kan de /etc/rc.conf.d/ directory voor scripts gebruikt worden die afkomstig zijn van derde partijen.

7.2. De rc.d scripts

De eigenlijke scripts die de diensten bedienen staan in /etc/rc.d. Als een dienst geactiveerd of gedeactiveerd is in /etc/rc.conf kan de staat van de dienst ook veranderd worden vanaf de commandoregel. De systeembeheerder kan bijvoorbeeld de secure shell deamon starten met:

# /etc/rc.d/sshd start
Starting sshd.

De rc scripts moeten één van de volgende argumenten ontvangen:

  • start

  • stop

  • restart

  • kill

Stel dat er een nieuw domein is toegevoegd aan de named database, dan kan named herstart worden:

# /etc/rc.d/named restart
Stopping named.
Starting named.

Het wordt complexer wanneer er een serie van instellingen veranderd zijn, bijvoorbeeld als de ipfilter regels van de firewall en de ipnat configuratie zijn aangepast, en de secure shell server een andere vorm van encryptie moet gebruiken:

# cd /etc/rc.d
# ./ipfilter restart; ./ipnat restart; ./sshd restart

7.3. De rol van rcorder en de rc scripts

Zoals in de System Manager's Manual is beschreven, wordt rcorder gebruikt om de afhankelijkheidsordening van onafhankelijke bestanden te tonen. Op sommige Unix systemen wordt dit gedaan door bestanden te nummeren en/of ze in aparte runlevel directories te zetten. Dit kan erg onoverzichtelijk worden. Op NetBSD wordt dit gedaan door de controlescripts die aan het begin van dit hoofdstuk zijn genoemd en de inhoud van elke rc script.

In de rc scripts staan een aantal regels die één van de volgende woorden bevatten:

  • REQUIRE

  • PROVIDE

  • BEFORE

  • KEYWORD

Deze woorden bepalen de afhankelijkheden van een bepaald rc script en daardoor kan de rcorder naar “boven” of naar “beneden” afgewerkt worden, afhankelijk van de situatie. Dit is een voorbeeld uit het nfsd script:

...
 PROVIDE: nfsd
 REQUIRE: mountd

. /etc/rc.subr
...

Hier zien we dat dit script de nfsd dienst biedt, maar dat het vereist dat mountd gestart is.

7.4. Meer informatie

Er zijn andere informatiebronnen beschikbaar met betrekking tot het rc.d systeem:

  • Eén van de ontwerpers van rc.d, Luke Mewburn, heeft een presentatie van het systeem gegeven op USENIX 2001. Het is beschikbaar in PDF formaat.

  • Will Andrews heeft een Daemonnews artikel geschreven met de naam The NetBSD rc.d System.