/[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 - (show annotations) (download) (as text)
Tue Mar 21 13:38:35 2006 UTC (8 years, 1 month ago) by neysx
Branch: MAIN
File MIME type: application/xml
#126987 large update and new files

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