/[gentoo]/xml/htdocs/doc/nl/handbook/hb-working-rcscripts.xml
Gentoo

Contents of /xml/htdocs/doc/nl/handbook/hb-working-rcscripts.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download) (as text)
Tue Mar 21 13:38:35 2006 UTC (8 years, 5 months ago) by neysx
Branch: MAIN
File MIME type: application/xml
#126987 large update and new files

1 neysx 1.1 <?xml version='1.0' encoding='UTF-8'?>
2     <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
3    
4     <!-- The content of this document is licensed under the CC-BY-SA license -->
5     <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
6    
7     <!-- $Header: $ -->
8    
9     <!-- Sync: 1.25 -->
10    
11     <sections>
12    
13     <version>1.21</version>
14     <date>2005-05-29</date>
15    
16     <section>
17     <title>Runlevels</title>
18     <subsection>
19     <title>Het starten van het Systeem</title>
20     <body>
21    
22     <p>
23     Als uw systeem opstart, ziet u steeds regels tekst voorbij schieten.
24     Wanneer u heel goed kijkt, zult u zien dat deze tekst steeds dezelfde zijn.
25     De volgorde waarin alles voorbij komt wordt de <e>boot sequence</e> genoemd,
26     is ligt (min of meer) vast.
27     </p>
28    
29     <p>
30     Allereerst laadt uw bootloader de kernel image die u hebt aangegeven in het
31     configuratie bestand in het geheugen. Daarna vertelt het de processor om de
32     kernel uit te voeren. Wanneer de kernel is geladen en uitgevoerd, worden alle
33     kernel specifieke onderdelen en taken geïnitialiseerd en wordt het <c>init</c>
34     proces gestart.
35     </p>
36    
37     <p>
38     Dit proces zorgt ervoor dat alle bestandssystemen (als gedefinieerd in
39     <path>/etc/fstab</path>) aangekoppeld en klaar gemaakt worden. Daarna
40     voert het verschillende scripts uit die terug te vinden zijn in
41     <path>/etc/init.d</path>. Deze scripts starten de hulpmiddelen die nodig
42     zijn om uw systeem volledig te starten.
43     </p>
44    
45     <p>
46     Als alle scripts zijn uitgevoerd, activeert <c>init</c> de terminals
47     (in de meeste gevallen alleen de consoles die achter <c>Alt-F1</c>,
48     <c>Alt-F2</c>, etc zijn verborgen) met <c>agetty</c> dat als toepassing
49     wordt mee gestart, zodat u kunt inloggen via <c>login</c>.
50     </p>
51    
52     </body>
53     </subsection>
54     <subsection>
55     <title>Init Scripts</title>
56     <body>
57    
58     <p>
59     Echter, <c>init</c> voert de scripts in <path>/etc/init.d</path> niet in
60     willekeurige volgorde uit. Sterker nog, het voert alleen de scripts in
61     <path>/etc/init.d</path> uit die uitgevoerd moeten worden. Het bepaalt welke
62     scripts dat zijn door te kijken naar <path>/etc/runlevels</path>.
63     </p>
64    
65     <p>
66     Als eerste voert <c>init</c> de scripts uit in <path>/etc/init.d</path> met
67     een symlink naar <path>/etc/runlevels/boo</path>. Meestal worden de scripts
68     in alfabetische volgorde gestart, maar sommige scripts hebben informatie
69     bijgevoegd waarin staat dat een ander script gestart moet zijn voordat
70     zijzelf kunnen starten.
71     </p>
72    
73     <p>
74     Wanneer alles met een link naar <path>/etc/runlevels/boot</path> is gestart,
75     gaat <c>init</c> verder met de scripts met een symlink naar
76     <path>/etc/runlevels/default</path>. Ook deze worden in alfabetische volgorde
77     gestart, tenzij een script vraagt om een ander script eerder te starten, waarna
78     de volgorde wordt verandert.
79     </p>
80    
81     </body>
82     </subsection>
83     <subsection>
84     <title>Hoe Init Werkt</title>
85     <body>
86    
87     <p>
88     Natuurlijk kan <c>init</c> dit niet allemaal zelf. Het heeft een configuratie
89     bestand nodig waarin staat wat er moet gebeuren. Dit configuratie bestand is
90     <path>/etc/inittab</path>.
91     </p>
92    
93     <p>
94     Als u zich de boot volgorde nog kunt herinneren, dan weet u dat <c>init</c>
95     eerst alle bestandssystemen aankoppelt. Dit wordt bepaald door de volgende
96     regel in <path>/etc/inittab</path>:
97     </p>
98    
99     <pre caption="De initialisatie regel in /etc/inittab">
100     si::sysinit:/sbin/rc sysinit
101     </pre>
102    
103     <p>
104     Deze regel laat <c>init</c> <c>sbin/rc sysinit</c> draaien om het systeem te
105     initialiseren. Het <path>/sbin/rc</path> script zorgt voor de initialisatie,
106     dus eigenlijk doet <c>init</c> zelf niet zo veel -- het besteed de taak
107     van het initialiseren uit aan een andere toepassing.
108     </p>
109    
110     <p>
111     Hierna voert <c>init</c> dus de scripts met symlinks naar
112     <path>/etc/runlevels/boot</path> uit. Dit wordt bepaald door de volgende regel:
113     </p>
114    
115     <pre caption="Verder met het systeem initialiseren">
116     rc::bootwait:/sbin/rc boot
117     </pre>
118    
119     <p>
120     Hier voert eigenlijk <c>rc</c> de benodigde taken uit. Het valt misschien op
121     dat de optie bij <c>rc</c> (<e>boot</e>) hetzelfde is als de submap van
122     <path>/etc/runlevels</path>.
123     </p>
124    
125     <p>
126     Nu checkt <c>init</c> het configuratie bestand om te bepalen welke
127     <e>runlevel</e> het moet draaien. Hiervoor lijst het de volgende regel in
128     <path>/etc/inittab</path>:
129     </p>
130    
131     <pre caption="De initdefault regel">
132     id:3:initdefault:
133     </pre>
134    
135     <p>
136     In de meeste gevallen (dus voor het overgrote deel van de Gentoo gebruikers) zal
137     het <e>runlevel</e> hier het nummer 3 zijn. Daarom zal <c>init</c> nu
138     kijken wat er gestart moet worden in <e>runlevel 3</e>:
139     </p>
140    
141     <pre caption="De definities voor de runlevels">
142     l0:0:wait:/sbin/rc shutdown
143     l1:S1:wait:/sbin/rc single
144     l2:2:wait:/sbin/rc nonetwork
145     l3:3:wait:/sbin/rc default
146     l4:4:wait:/sbin/rc default
147     l5:5:wait:/sbin/rc default
148     l6:6:wait:/sbin/rc reboot
149     </pre>
150    
151     <p>
152     De regel die runlevel 3 definieert, roept opnieuw het <c>rc</c> script aan om
153     toepassingen te starten (nu met het argument <e>default</e>). Ook hier is het
154     argument bij <c>rc</c> gelijk aan de naam van de submap van
155     <path>/etc/runlevels</path>.
156     </p>
157    
158     <p>
159     Wanneer <c>rc</c> klaar is, bepaalt <c>init</c> welke consoles geactiveerd
160     worden en welke commando's gegeven moeten worden in die consoles:
161     </p>
162    
163     <pre caption="De definities voor de consoles">
164     c1:12345:respawn:/sbin/agetty 38400 tty1 linux
165     c2:12345:respawn:/sbin/agetty 38400 tty2 linux
166     c3:12345:respawn:/sbin/agetty 38400 tty3 linux
167     c4:12345:respawn:/sbin/agetty 38400 tty4 linux
168     c5:12345:respawn:/sbin/agetty 38400 tty5 linux
169     c6:12345:respawn:/sbin/agetty 38400 tty6 linux
170     </pre>
171    
172    
173     </body>
174     </subsection>
175     <subsection>
176     <title>Wat is een runlevel?</title>
177     <body>
178    
179     <p>
180     U hebt nu kunnen zien dat <c>init</c> een genummerde lijst gebruikt om te
181     bepalen welk <e>runlevel</e> als eerste wordt geactiveerd. Een <e>runlevel</e>
182     is een vooraf ingestelde staat waarin uw systeem draait en bevat enkele scripts
183     (runlevel scripts of <e>initscripts</e>) die moeten worden uitgevoerd wanneer
184     u het runlevel start of beëindigt.
185     </p>
186    
187     <p>
188     Binnen Gentoo zijn zeven runlevels gedefinieerd: drie interne runlevels, en
189     vier gebruikersrunlevels. De interne runlevels zijn <e>sysinit</e>,
190     <e>shutdown</e> en <e>reboot</e> en doen wat hun name impliceert:
191     respectievelijk het systeem initialiseren, afsluiten en herstarten.
192     </p>
193    
194     <p>
195     De gebruikersrunlevels hebben een <path>/etc/runlevels</path> submap:
196     <path>boot</path>, <path>default</path>, <path>nonetwork</path> en
197     <path>single</path>. Het <path>boot</path> runlevel start alle systeem
198     toepassingen, die door de andere runlevels gebruikt worden. De drie andere
199     runlevels verschillen door welke toepassingen ze starten: <path>default</path>
200     wordt gebruikt voor dagelijkse toepassingen, <path>nonetwork</path> indien
201     er geen netwerk wordt gebruikt, en <path>single</path> wanneer het systeem
202     gerepareerd moet worden.
203     </p>
204    
205     </body>
206     </subsection>
207     <subsection>
208     <title>Werken met de Init Scripts</title>
209     <body>
210    
211     <p>
212     De scripts die door <c>rc</c> worden gestart noemen we <e>init scripts</e>.
213     Elk script in <path>/etc/init.d</path> kan worden uitgevoerd met de argumenten
214     <e>start</e>, <e>stop</e>, <e>restart</e>, <e>pause</e>, <e>zap</e>,
215     <e>status</e>, <e>ineed</e>, <e>iuse</e>, <e>needsme</e>, <e>usesme</e> of
216     <e>broken</e>.
217     </p>
218    
219     <p>
220     Om een toepassing te starten, stoppen or herstarten (inclusief afhankelijke
221     toepassingen), kunt u <c>start</c>, <c>stop</c> en <c>restart</c> gebruiken:
222     </p>
223    
224     <pre caption="Start Postfix">
225     # <i>/etc/init.d/postfix start</i>
226     </pre>
227    
228     <note>
229     Alleen wanneer een toepassing een andere toepassing <e>nodig</e> heeft, wordt
230     deze opnieuw gestart of gestopt. Toepassingen die een andere toepassing blijven
231     gewoon draaien.
232     </note>
233    
234     <p>
235     Wanneer u een toepassing wilt stoppen, maar de toepassingen die er op steunen
236     niet, dan kunt u het <c>pause</c> argument gebruiken:
237     </p>
238    
239     <pre caption="Postfix stoppen, maar de afhankelijke toepassingen laten door draaien">
240     # <i>/etc/init.d/postfix pause</i>
241     </pre>
242    
243     <p>
244     Wanneer u wilt zien wat de status van een toepassing is (gestart, gestopt,
245     gepauzeerd, ...), kunt u <c>status</c> gebruiken:
246     </p>
247    
248     <pre caption="Status van postfix opvragen">
249     # <i>/etc/init.d/postfix status</i>
250     </pre>
251    
252     <p>
253     Als de informatie aangeeft dat de toepassing draait, maar u weet zeker dat het
254     niet zo is, dan kunt u de status informatie resetten met behulp van het
255     <c>zap</c> argument:
256     </p>
257    
258     <pre caption="Resetten van de status voor postfix">
259     # <i>/etc/init.d/postfix zap</i>
260     </pre>
261    
262     <p>
263     Om te kunnen zien welke afhankelijkheden een toepassing heeft, kunt u
264     <c>iuse</c> of <c>ineed</c> gebruiken. Met <c>ineed</c> kunt u zien welke
265     toepassing nodig zijn om correct te kunnen functioneren. <c>iuse</c> geeft
266     aan welke toepassing gebruikt kunnen worden, maar niet nodig zijn voor
267     het correct functioneren.
268     </p>
269    
270     <pre caption="Een lijst met benodigde toepassing opvragen voor postfix">
271     # <i>/etc/init.d/postfix ineed</i>
272     </pre>
273    
274     <p>
275     Op dezelfde manier kunt u opvragen welke toepassing een bepaalde toepassing
276     gebruiken (<c>needsme</c>) of kunnen gebruiken (<c>usesme</c>):
277     </p>
278    
279     <pre caption="Een lijst met toepassing opvragen die postfix nodig hebben">
280     # <i>/etc/init.d/postfix needsme</i>
281     </pre>
282    
283     <p>
284     Als laatste kunt u opvragen welke afhankelijkheden een toepassing nodig heeft
285     en mist:
286     </p>
287    
288     <pre caption="Een lijst met missende afhankelijkheden opvragen voor postfix">
289     # <i>/etc/init.d/postfix broken</i>
290     </pre>
291    
292     </body>
293     </subsection>
294     </section>
295     <section>
296     <title>Werken met rc-update</title>
297     <subsection>
298     <title>Wat is rc-update?</title>
299     <body>
300    
301     <p>
302     Gentoo's init systeem gebruikt een lijst met afhankelijkheden om te bepalen
303     welke toepassing als eerste moet worden gestart. Aangezien dit een
304     arbeidsintensieve taak is, willen we u als gebruiker dit niet handmatig laten
305     doen. Daarom hebben we hulpprogramma's ontwikkeld die het beheer van runlevels
306     en init scripts vergemakkelijken.
307     </p>
308    
309     <p>
310     Met <c>rc-update</c> kunt u init scripts toevoegen en verwijderen bij een
311     runlevel. Het <c>rc-update</c> programma zal steeds automatisch het
312     <c>depscan.sh</c> script de lijst met afhankelijkheden laten updaten.
313     </p>
314    
315     </body>
316     </subsection>
317     <subsection>
318     <title>Het toevoegen en verwijderen van toepassingen</title>
319     <body>
320    
321     <p>
322     Tijdens de installatie hebt u al init scripts toegevoegd aan het "default"
323     runlevel. Toen wist u misschien nog niet waar "default" voor stond, maar dat
324     zou u nu moeten weten. Het <c>rc-update</c> script heeft een tweede argument
325     nodig, dat de actie definieert: <e>add</e>, <e>del</e> of <e>show</e>.
326     </p>
327    
328     <p>
329     Om een init script toe te voegen of te verwijderen, voegt u gewoon <c>add</c>
330     of <c>del</c> als optie toe aan <c>rc-update</c>. Dit wordt gevolgd door het
331     te gebruike init script en het aan te passen runlevel. Bijvoorbeeld:
332     </p>
333    
334     <pre caption="Postfix verwijderen uit het default runlevel">
335     # <i>rc-update del postfix default</i>
336     </pre>
337    
338     <p>
339     Het <c>rc-update show</c> commando geeft u alle beschikbare init scripts en een
340     lijst van de runlevels waarin zij draaien:
341     </p>
342    
343     <pre caption="Init script informatie opvragen">
344     # <i>rc-update show</i>
345     </pre>
346    
347     </body>
348     </subsection>
349     </section>
350     <section>
351     <title>Toepassingen configureren</title>
352     <subsection>
353     <title>Waarom extra configuraties?</title>
354     <body>
355    
356     <p>
357     Init scripts kunnen redelijk complex zijn. Daarom is het niet echt wenselijk
358     dat gebruikers de scripts direct moeten aanpassen, de kans op fouten is
359     gewoonweg te groot. Het is echter wel belangrijk om een toepassing te kunnen
360     configureren. U kunt bijvoorbeeld extra opties aan een toepassing willen
361     toevoegen.
362     </p>
363    
364     <p>
365     Een tweede reden voor configuratie buiten het init script om, is om de
366     mogelijkheid te hebben init scripts te updaten zonder uw configuratie
367     kwijt te raken.
368     </p>
369    
370     </body>
371     </subsection>
372     <subsection>
373     <title>De /etc/conf.d map</title>
374     <body>
375    
376     <p>
377     Gentoo heeft een simpele manier om toepassingen te configureren: elk init script
378     heeft een configuratiebestand in <path>/etc/conf.d</path>. Het apache2 init
379     script (<path>/etc/init.d/apach2</path> heeft bijvoorbeeld een
380     configuratiebestand <path>/etc/conf.d/apache2</path>, waarmee u verschillende
381     opties aan de Apache2 server kunt meegeven, als deze wordt gestart:
382     </p>
383    
384     <pre caption="Variabele in /etc/conf.d/apache2">
385     APACHE2_OPTS="-D PHP4"
386     </pre>
387    
388     <p>
389     Deze configuratiebestanden bevatten alleen variabelen (net als
390     <path>/etc/make.conf</path>, waardoor het gemakkelijk is om toepassingen te
391     configureren. Het geeft ons ook de mogelijkheid om meer informatie te geven
392     over de variabelen (als commentaar).
393     </p>
394    
395     </body>
396     </subsection>
397     </section>
398     <section>
399     <title>Init Scripts scrhijven</title>
400     <subsection>
401     <title>Moet ik dat doen?</title>
402     <body>
403    
404     <p>
405     Nee, het schrijven van een init script is normaal niet nodig, omdat Gentoo
406     voor alle toepassingen init scripts mee levert. Wanneer u echter een toepassing
407     installeert zonder Portage te gebruiken, is het heel goed waarschijnlijk dat u
408     wel zelf een init script moet schrijven.
409     </p>
410    
411     <p>
412     Let op dat u niet het init script gebruikt dat door een toepassing zelf wordt
413     meegeleverd, indien dit niet speciaal voor Gentoo is geschreven: Gentoo's init
414     scripts zijn namelijk niet compatible met init scripts voor andere linux
415     distributies.
416     </p>
417    
418     </body>
419     </subsection>
420     <subsection>
421     <title>Indeling</title>
422     <body>
423    
424     <p>
425     De basis indeling van een init script wordt hieronder gegeven.
426     </p>
427    
428     <pre caption="Basis indeling van een init script">
429     #!/sbin/runscript
430    
431     depend() {
432     <comment>(informatie over afhankelijkheden)</comment>
433     }
434    
435     start() {
436     <comment>(Commando's voor het starten van de toepassing)</comment>
437     }
438    
439     stop() {
440     <comment>(Commando's voor het stoppen van de toepassing)</comment>
441     }
442    
443     restart() {
444     <comment>(Commando's voor het herstarten van de toepassing)</comment>
445     }
446     </pre>
447    
448     <p>
449     Elk init script <e>moet</e> een <c>start()</c> functie hebben. De andere delen
450     zijn niet verplicht.
451     </p>
452    
453     </body>
454     </subsection>
455     <subsection>
456     <title>Afhankelijkheden</title>
457     <body>
458    
459     <p>
460     Er zijn twee soorten afhankelijkheden die u kunt definiëren: <c>use</c> en
461     <c>need</c>. Zoals eerder uitgelegd, <c>need</c> is stricter dan <c>use</c>.
462     Met behulp van deze afhankelijkheden voert u de toepassing toe waar u van
463     afhankelijk bent, of de <e>virtuele</e> afhankelijkheid.
464     </p>
465    
466     <p>
467     Een <e>virtuele</e> afhankelijkheid is een afhankelijkheid die door
468     verschillende toepassingen kan worden geleverd. Uw init script kan bijvoorbeeld
469     een systeem logger nodig hebben, maar er zijn meerdere systeem loggers
470     beschikbaar (metalogd, syslog-ng, sysklogd, ...). Aangezien u niet elke logger
471     afzonderlijk <e>moet</e> hebben (het is niet echt logisch om drie systeem
472     loggers te installeren), zorgen we er voor dat deze toepassingen een virtuele
473     afhankelijkheid leveren (<c>provide</c>).
474     </p>
475    
476     <p>
477     We kijken naar de afhankelijkheden voor de postfix toepassing.
478     </p>
479    
480     <pre caption="Afhankelijkheden voor Postfix">
481     depend() {
482     need net
483     use logger dns
484     provide mta
485     }
486     </pre>
487    
488     <p>
489     Zoals u kunt zien, geldt dat postfix:
490     </p>
491    
492     <ul>
493     <li>
494     de (virtuele) <c>net</c> afhankelijkheid nodig heeft (bijvoorbeeld
495     geleverd door <path>/etc/init.d/net.eth0</path>
496     </li>
497     <li>
498     de (virtuele) <c>logger</c> gebruikt (bijvoorbeeld geleverd door
499     <path>/etc/init.d/syslog-ng</path>)
500     </li>
501     <li>
502     de (virtuele) <c>dns</c> afhankelijkheid gebruikt (bijvoorbeeld geleverd
503     door <path>/etc/init.d/named</path>)
504     </li>
505     <li>
506     een (virtuele) <c>mta</c> afhankelijkheid levert (wat alle mail servers
507     doen)
508     </li>
509     </ul>
510    
511     </body>
512     </subsection>
513     <subsection>
514     <title>De volgorde instellen</title>
515     <body>
516    
517     <p>
518     In sommige gevallen hebt u een toepassing niet direct nodig, maar wilt u de
519     toepassing starten <c>voor</c> (of <c>na</c>) een andere toepassing
520     <e>indien</e> de toepassing op het systeem aanwezig is (let op de voorwaarde
521     - dit is geen afhankelijkheid meer) <e>en</e> laten draaien in dezelfde
522     runlevel (let weer op de voorwaarde - er zijn alleen toepassingen in hetzelfde
523     runlevel bij betrokken). U kunt dit doen met <c>before</c> en <c>after</c>.
524     </p>
525    
526     <p>
527     Als voorbeeld kijken we naar de instellingen van portmap:
528     </p>
529    
530     <pre caption="De depend() functie in de Portmap toepassing">
531     depend() {
532     need net
533     before inetd
534     before xinetd
535     }
536     </pre>
537    
538     <p>
539     U kunt ook het sterretje "*" gebruiken om uw toepassing voor alle andere
540     toepassingen in hetzelfde runlevel te plaatsen, maar dit is niet aan te raden.
541     </p>
542    
543     <pre caption="Het draaien van een init script als eerste in een runlevel">
544     depend() {
545     before *
546     }
547     </pre>
548    
549     </body>
550     </subsection>
551     <subsection>
552     <title>Standaard functies</title>
553     <body>
554    
555     <p>
556     Naast de <c>depend</c> functie moet u ook de <c>start</c> functie definiëren.
557     Deze functie bevat alle commando's die nodig zijn om de toepassing te starten.
558     Het is verder aan te raden om de <c>ebegin</c> en <c>eend</c> functies te
559     gebruiken om te laten weten wat er gebeurt tijdens het uitvoeren van de
560     toepassing.
561     </p>
562    
563     <pre caption="Voorbeeld start() functie">
564     start() {
565     ebegin "Starting my_service"
566     start-stop-daemon --start --quiet --exec /path/to/my_service
567     eend $?
568     }
569     </pre>
570    
571     <p>
572     Indien u meer voorbeelden nodig hebt van de <c>start()</c> functie, kunt u de
573     init scripts uit de map <path>/etc/init.d</path> er op na slaan. En voor de
574     <c>start-stop-daemon</c> is een goede handleiding beschikbaar, die u op elk
575     moment kunt bekijken voor meer informatie:
576     </p>
577    
578     <pre caption="De handleiding voor de start-stop-daemon bekijken">
579     # <i>man start-stop-daemon</i>
580     </pre>
581    
582     <p>
583     Andere functies die u kunt gebruiken zijn: <c>stop()</c> en <c>restart()</c>.
584     U bent echter niet verplicht deze functies aan te roepen! Het init systeem kan
585     zelf deze functies aanvullen wanneer u de <c>start-stop-daemon</c> gebruikt.
586     </p>
587    
588     <p>
589     De Gentoo init script programmeertaal is gebaseerd op de Bourne Again Shell
590     (bash). U kunt daarom zonder meer bash commando's gebruiken in uw init script.
591     </p>
592    
593     </body>
594     </subsection>
595     <subsection>
596     <title>Eigen functies toevoegen</title>
597     <body>
598    
599     <p>
600     Wanneer u in uw init script andere functies wilt gebruiken dan de eerder
601     genoemde, kunt u die functie toevoegen via de variabele <c>opts</c>. U kunt
602     dan een functie maken met dezelfde naam, bijvoorbeeld om een functie
603     <c>restartdelay</c> te gebruiken:
604     </p>
605    
606     <pre caption="De restartdelay functie aanmaken">
607     opts="${opts} restartdelay"
608    
609     restartdelay() {
610     stop
611     sleep 3 <comment># Wacht drie seconden voor opnieuw te starten</comment>
612     start
613     }
614     </pre>
615    
616     </body>
617     </subsection>
618     <subsection>
619     <title>Configuratie variabelen voor uw toepassing</title>
620     <body>
621    
622     <p>
623     U hoeft niets extra te doen om een configuratie bestand in de map
624     <path>/etc/conf.d</path> te kunnen gebruiken: wanneer uw init script wordt
625     gestart worden de volgende bestanden automatisch ingelezen:
626     </p>
627    
628     <ul>
629     <li><path>/etc/conf.d/&lt;Uw init script&gt;</path></li>
630     <li><path>/etc/conf.d/basic</path></li>
631     <li><path>/etc/rc.conf</path></li>
632     </ul>
633    
634     <p>
635     Wanneer uw init script een virtuele afhankelijkheid bevat (zoals <c>net</c>)
636     zal het bestand dat hierbij hoort (in dit geval <path>/etc/conf.d/net</path>)
637     ook ingelezen worden.
638     </p>
639    
640     </body>
641     </subsection>
642     </section>
643     <section>
644     <title>Het gedrag van het runlevel veranderen</title>
645     <subsection>
646     <title>Wie hebben hier iets aan?</title>
647     <body>
648    
649     <p>
650     Veel laptop gebruikers zullen de volgende situatie herkennen: thuis wilt u
651     <c>net.eth0</c> starten, maar onderweg wilt u het netwerk juist niet starten
652     (omdat er toch geen netwerk beschikbaar is). Binnen Gentoo kunt u het gedrag
653     van het runlevel daarom aanpassen naar uw eigen wensen.
654     </p>
655    
656     <p>
657     U kunt bijvoorbeeld een tweede "default" runlevel aanmaken, met daarin andere
658     init scripts. U kunt dan tijdens het opstarten kiezen welk default runlevel u
659     wilt gebruiken.
660     </p>
661    
662     </body>
663     </subsection>
664     <subsection>
665     <title>Softlevel gebruiken</title>
666     <body>
667    
668     <p>
669     Allereerst maakt u een map aan voor uw tweede "default" runlevel. Hier maken
670     we als voorbeeld het runlevel <path>offline</path> aan:
671     </p>
672    
673     <pre caption="Een map maken voor een runlevel">
674     # <i>mkdir /etc/runlevels/offline</i>
675     </pre>
676    
677     <p>
678     Nu kunt u de init scripts toevoegen die u wilt gebruiken in het nieuwe
679     runlevel. Een exacte kopie van uw huidige <c>default</c> runlevel, maar dan
680     zonder <c>net.eth0</c> maakt u zo:
681     </p>
682    
683     <pre caption="Het toevoegen van de juiste init scripts">
684     <comment>(Kopieer alle toepassing van "default" naar "offline")</comment>
685     # <i>cd /etc/runlevels/default</i>
686     # <i>for service in *; do rc-update add $service offline; done</i>
687     <comment>(Verwijder de toepassingen die u niet wilt gebruiken in "offline")</comment>
688     # <i>rc-update del net.eth0 offline</i>
689     <comment>(Laat de toepassingen voor "offline" zien)</comment>
690     # <i>rc-update show offline</i>
691     <comment>(Een gedeelte van de resultaten)</comment>
692     acpid | offline
693     domainname | offline
694     local | offline
695     net.eth0 |
696     </pre>
697    
698     <p>
699     Nu kunt u het configuratie bestand van uw bootloader aanpassen en het runlevel
700     <c>offline</c> toevoegen. Voor Grub past u <path>/boot/grub/grub.conf</path>
701     aan:
702     </p>
703    
704     <pre caption="Het runlevel offline toevoegen voor Grub">
705     title Gentoo Linux Offline Usage
706     root (hd0,0)
707     kernel (hd0,0)/kernel-2.4.25 root=/dev/hda3 <i>softlevel=offline</i>
708     </pre>
709    
710     <p>
711     En voilà, u bent klaar. U kunt nu tijdens het opstarten kiezen voor uw nieuwe
712     <c>offline</c> runlevel. Dit wordt dan gestart in plaats van <c>default</c>.
713     </p>
714    
715     </body>
716     </subsection>
717     <subsection>
718     <title>Bootlevel gebruiken</title>
719     <body>
720    
721     <p>
722     Het gebruik van <c>bootlevel</c> is gelijk aan <c>softlevel</c>. Het enige
723     verschil is dat u nu geen tweede runlevel "default" aanmaakt, maar een tweede
724     runlevel "boot".
725     </p>
726    
727     </body>
728     </subsection>
729     </section>
730     </sections>

  ViewVC Help
Powered by ViewVC 1.1.20