<sect1 id="ch07-usage">
	<title>Hoe werkt het bootproces met deze scripts?</title>
<?dbhtml filename="usage.html" dir="chapter07"?>

<para>Linux maakt gebruik van een speciale bootfaciliteit genaamd
	SysVinit. Het is gebaseerd op een concept bestaande uit
	<emphasis>runlevels</emphasis>. Op de verschillende systemen
	kan dit heel anders zijn, dus er kan niet vanuit worden gegaan
	dat hetgeen wat werkt in &lt;voeg hier de naam van een distributie in&gt; ook zou moeten werken op een LFS systeem. LFS heeft zijn eigen manier van
	doen, maar het respecteert over het algemeen geaccepteerde standaards.
</para>

<para>SysVinit (wat we van nu af aan <emphasis>init</emphasis> zullen noemen)
	maakt gebruik van een schema met runlevels. Er zijn 7 (van 0 tot en
	met 6) runlevels (in werkelijkheid zijn er meer runlevels maar die
	zijn er voor speciale gevallen en worden over het algemeen niet
	gebruikt. De init manpage beschrijft die details), en elk daarvan
	correspondeert met datgeen de computer wordt verondersteld te doen
	wanneer het opstart. Het standaardrunlevel is 3. Hieronder staand
	de beschrijvingen van de verschillende runlevels zoals ze vaak zijn
	ge&iuml;mplementeerd:
</para>

<literallayout>0: stop de computer
1: single-user modus
2: multi-user modus zonder netwerk
3: multi-user modus met netwerk
4: gereserveerd voor aanpassing, doet anders hetzelfde als 3
5: hetzelfde als 4, het wordt gewoonlijk gebruikt voor GUI login (zoals X's 
xdm of KDE's kdm)
6: reboot de computer</literallayout>

<para>De opdracht die wordt gebruikt om van runlevel te wisselen is 
	<userinput>init &lt;runlevel&gt;</userinput> waarbij &lt;runlevel&gt; 
	het doelrunlevel is. Om bijvoorbeeld de computer opnieuw op te starten,
	zou een gebruiker de opdracht init 6 aanroepen. De opdracht reboot
	is slechts een alias, zoals de opdracht halt een alias is voor
	init 0.
</para>

<para>Onder /etc/rc.d bevinden zich een aantal directory's lijkend op
	rc?.d waarbij ? het nummer is van het runlevel en rcsysinit.d
	waarin een aantal symbolische links staan. Een aantal begint met
	een K, de anderen met een S, en allen hebben twee nummers volgend
	op de initi&euml;le letter. De K betekent stop (kill) een service,
	en de S betekent het starten van een service. De getallen bepalen
	de volgorde waarin de scripts worden uitgevoerd, van 00 tot aan 99;
	hoe lager het nummer hoe eerder het wordt uitgevoerd. Wanneer init
	op een ander runlevel overschakelt, worden de van toepassing zijnde
	services be&euml;indigd en anderen opgestart.</para>

<para>De daadwerkelijke scripts staan in /etc/rc.d/init.d. Zij doen al het
	werk, en alle symlinks verwijzen naar deze scripts. Scripts beginnend
	met een K en beginnend met een S verwijzen naar hetzelfde script in
	/etc/rc.d/init.d. Dat is omdat de scripts met verschillende parameters
	kunnen worden aangeroepen zoals start, stop, restart, reload, status.
	Wanneer een K link wordt aangetroffen, wordt het van toepassing zijnde
	script uitgevoerd met het stop argument. Wanneer een S link wordt
	aangetroffen, wordt het van toepassing zijnde script uitgevoerd met
het start argument.</para>

<para>Er is &eacute;&eacute;n uitzondering. Links die beginnen met een S in 
	de directory's rc0.d en rc6.d zullen er niet voor zorgen dat er iets
	wordt opgestart. Ze zullen met de parameter <emphasis>stop</emphasis>
	worden aangeroepen om iets te stoppen. De logica hierachter is dat
	je bij het opnieuw opstarten of stoppen van het systeem niet iets
	op zult willen starten, maar slechts het systeem wilt stoppen.
</para>

<para>Hieronder staan de beschrijvingen wat de argumenten van de scripts doen:
</para>

<itemizedlist>

<listitem><para><emphasis>start</emphasis>: De service wordt gestart.</para></listitem>

<listitem><para><emphasis>stop</emphasis>: De service wordt 
gestopt.</para></listitem>

<listitem><para><emphasis>restart</emphasis>: De service wordt 
		gestops en weer gestart.</para></listitem>

<listitem><para><emphasis>reload</emphasis>: De configuratie van de
		service wordt bijgewerkt. Dit wordt gebruikt nadat het
		configuratiebestand of een service werd aangepast, wanneer
		de service niet opnieuw hoeft te worden opgestart.
</para></listitem>

<listitem><para><emphasis>status</emphasis>: Geeft aan of de service
		actief is en met welke PID's.
</para></listitem>

</itemizedlist>

<para>Pas gerust de wijze aan waarop het bootproces werkt (uiteindelijk is het
	je eigen LFS systeem). De hier gegeven bestanden dienen slechts als
	voorbeeld hoe het op een fraaie manier kan worden gedaan (tenminste
	wat wij als fraai beschouwen, wellicht vind jij het maar niks).
</para>

</sect1>

