# Het handboek van &ksysv;

Peter Putzer

    putzer@kde.org

&Niels.Reedijk;&Rinse.Devries;
2001-03-21
1.03.06
1998 2000 2001 Peter Putzer
&FDLNotice;

&ksysv; is een grafische editor voor de SysV-stijl init-configuratie.

KDE KSysV Runlevel Runlevel-editor System V init

## Inleiding

Welkom bij de System V Init-editor van &kde;, beter bekend (en hierna genoemd) als &ksysv;. Deze sectie is een inleiding voor een aantal concepten en legt uit wat u met &ksysv; kunt doen.

## Een korte beschrijving van System V Init

De volgende uitleg is geleend van tksysv:

System V init is hard op weg om de in de &Linux;-wereld de standaard te worden om het opstarten van software tijdens het booten te regelen. Dit komt doordat het eenvoudiger is te gebruiken, krachtiger en flexibeler is dan de traditionele BSD-init.

We zullen verder niet op de geschiedenis ingaan (voornamelijk omdat ik die niet ken :o).

Het init-programma bevindt zich in `/sbin` en niet in `/etc`. Dit is belangrijk voor gebruikers die een computer willen opwaarderen naar System V init zonder het besturingssysteem te herinstalleren of te formatteren. De &Linux;-kernel kijkt eerst in de map `/etc` voor haar init-scripts, dus verzeker u ervan dat u uw oude init verwijdert als u die hebt.

SysV init verschilt ook van BSD init in het feit dat de configuratiebestanden zich in een submap van `/etc` bevinden, in plaats van in de map `/etc` zelf. Deze map heet `rc.d`. In die map vindt u `rc.sysinit` en de volgende mappen:

- `init.d/`

- `rc0.d/`

- `rc1.d/`

- `rc2.d/`

- `rc3.d/`

- `rc4.d/`

- `rc5.d/`

- `rc6.d/`

`init.d` bevat een aantal scripts. In principe hebt u voor elke dienst die u wilt starten tijdens de boot, of wanneer u een ander runlevel ingaat, een script nodig. Diensten omvatten zaken zoals netwerken, NFS, &Sendmail;, httpd, enz. Diensten omvatten geen zaken als `setserial` die eenmalig dienen te worden uitgevoerd en daarna weer afgesloten. Dergelijke zaken dient u in het bestand `rc.localz` op te nemen.

`rc.local`, indien aanwezig, bevindt zich in de map `/etc/rc.d`. De meeste systemen hebben er een, alhoewel die weinig doet. U kunt ook een bestand genaamd `rc.serial` aanmaken in `/etc/rc.d` als u tijdens de boot zaken wilt laten uitvoeren die specifiek aan seriële poorten zijn.

De keten van gebeurtenissen ziet er als volgt uit:

1. De kernel zoekt op diverse plekken naar init en draait de eerste die gevonden wordt.

2. init draait `/etc/rc.d/rc.sysinit`.

3. `rc.init` doet een aantal noodzakelijke dingen en voert vervolgens `rc.serial` (indien aanwezig) uit.

4. init voert `rc.local` uit

5. init voert alle scripts uit van de standaard-runlevel

De standaard-runlevel wordt bepaalt in het bestand `/etc/inittab`. Ergens bovenaan kunt u een regel als deze vinden:

    id:5:initdefault:

In deze regel ziet u dat de standaard-runlevel 5 is. Dit is op de meeste systemen het geval. Als u dit wilt wijzigen, dan kunt u `/etc/inittab` handmatig bewerken en de 5 veranderen in een ander cijfer. Wees wel voorzichtig bij het bewerken van inittab, omdat een fout kan leiden in het niet opstarten van Linux. Mocht u een fout maken waardoor het systeem niet goed opstart, en u gebruikt LILO als bootmanager, start Linux dan met het volgende commando:

    LILO boot: linux single

&Linux; zou nu moeten opstarten in single user mode, waarin u de fout kunt herstellen. Daarnaast bieden veel moderne Linux-distributies de mogelijkheid om vanaf de installatiedisk een rescue system op te starten.

Hoe weet de kernel welke init-scripts uitgevoerd dienen te worden? Als u via ``ls` `-l`` de map `rc3.d` bekijkt, dan krijgt u ongeveer dit te zien:

    lrwxrwxrwx 1 root root 13 13:11 S10network -> ../init.d/network
    lrwxrwxrwx 1 root root 16 13:11 S30syslog -> ../init.d/syslog
    lrwxrwxrwx 1 root root 14 13:32 S40cron -> ../init.d/cron
    lrwxrwxrwx 1 root root 14 13:11 S50inet -> ../init.d/inet
    lrwxrwxrwx 1 root root 13 13:11 S60nfs -> ../init.d/nfs
    lrwxrwxrwx 1 root root 15 13:11 S70nfsfs -> ../init.d/nfsfs
    lrwxrwxrwx 1 root root 18 13:11 S75keytable -> ../init.d/keytable
    lrwxrwxrwx 1 root root 23 13:11 S80sendmail -> ../init.d/sendmail.init
    lrwxrwxrwx 1 root root 18 13:11 S90lpd -> ../init.d/lpd.init
    lrwxrwxrwx 1 root root 11 13:11 S99local -> ../rc.local

Zoals u ziet staan er geen echte bestanden in de map. Alles is een symbolische koppeling naar de scripts in de map `init.d`.

De koppelingen hebben ook een `S` en een nummer aan het begin. De `S` betekent dat het script zal worden gestart, en een `K` betekent dat het zal worden gestopt. Het nummer wordt gebruikt om de volgorde te bepalen. Init zal de diensten op volgorde starten. U kunt nummers dupliceren, maar dat wekt bij uzelf alleen maar verwarring. Het enige wat u nodig hebt om diensten te starten of te stoppen is een 2-cijferig nummer en de hoofdletter `S` of `K`.

Hoe worden de dientsten gestart en gestopt? Simpel. Elk script is zo geschreven dat het de argumenten `start` en `stop` accepteert. U kunt de scripts overigens ook zelf starten met een commando als dit:

    /etc/rc.d/init.d/httpd.init stop

om de httpd-server te stoppen. Init leest enkel de naam, en alshet een `K` bevat wordt het script aangeroepen met het argument `stop`. Als de naam een `S` bevat, dan wordt het script met het argument `start` aangeroepen.

### Vanwaar al die runlevels?

Sommige gebruikers willen een eenvoudige manier om hun computers voor meerdere doeleinden in te richten. Zo kan een computer een server-runlevel bevatten dat alleen httpd, sendmail, networking, enz. draait. Daarnaast kan die computer ook een user-runlevel bevatten dat kdm, networking, enz draait.

## Grondbeginselen

In dit gedeelte leert u hoe u &ksysv; kunt gebruiken. Dit zal niet echt moeilijk zijn omdat het programma zo gebruiksvriendelijk mogelijk is opgezet.

### Muis

&ksysv; bedienen met de muis of ander aanwijsapparaat is eenvoudig: sleep een item van het vak Beschikbare diensten naar een van de zes runlevels om het te starten (of te stoppen) in dat runlevel.

U kunt ook scripts tussen runlevels verplaatsen, of de positie in een opgegeven runlevel veranderen, door ze naar de juiste positie te slepen. Het verslepen van items binnen het vak Beschikbare diensten zelf heeft geen effect.

Door items te verslepen worden ze verplaatst. Om een item te kopiëren naar een ander runlevel selecteert u optie Kopiëren in menu Bewerken of het contextmenu, en vervolgens Plakken in het gewenste runlevel.

Het sorteernummer van een item kan soms niet worden berekend. In zo'n geval dient u de sorteernummers van de omliggende items aanpassen voordat u opnieuw probeert de dienst in te voegen.

Sorteernummers dienen te liggen tussen 00 en 99.

U kunt items verwijderen door ze naar de Prullenbak te slepen.

U kunt items die u naar de Prullenbak hebt versleept op geen enkele manier terughalen. Wees dus voorzichtig!

### Toetsenbord

Gebruik de toets Tab om de focus te wisselen tussen de verschillende vakken (Beschikbare diensten, Runlevel 1 Startm Runlevel1 Stop, enz) en de cursortoetsen om op- en neer in de selectie te bewegen.

Om een item te verplaatsen naar een ander runlevel, knip het naar het klembord (via &Ctrl;X) en plak het in het gewenste runlevel (met &Ctrl;V).

Om handmatig het sorteernummer of de naam van een van de items te wijzigen, druk op Enter om de eigenschappendialoog te openen. Gebruik de toets Tab om tussen de verschillende velden te springen. Sluit de dialoog met de toets Enter om de wijzigingen te accepteren of Esc om de wijzigingen te verwerpen.

### De menuopties

Een beschrijving van &ksysv;'s menu.

#### Het Bestand-menu

Om gegevensverlies te voorkomen vragen alle menuopties van menu Bestand om uw bevestiging voordat ze worden uitgevoerd.

Bestand Vorige configuratie herstellen...

  Verwijdert alle veranderingen die u hebt gemaakt en zet de configuratie terug naar de laatst opgeslagen versie.

&Ctrl; O Bestand Openen...

  Opent een eerder opgeslagen configuratie.

&Ctrl; S Bestand Configuratie opslaan

  Maakt u wijzigingen permanent. Er worden geen reservekopieën aangemaakt, wees dus zorgvuldig.

Bestand Opslaan als...

  Slaat een kopie op van uw nieuwe configuratie.

&Ctrl; L Bestand Log opslaan...

  Slaat een log op

&Ctrl; P Bestand Log afdrukken...

  Druk een kopie af van het log.

&Ctrl; Q Bestand Afsluiten

  Beëindigt &ksysv;.

#### Het menu Bewerken

&Ctrl; Z Bewerken Ongedaan maken

  Maakt de laatste onopgeslagen wijziging ongedaan.

&Ctrl; Shift Z Bewerken Opnieuw

  Voert de laatste handeling die ongedaan is gemaakt opnieuw uit.

&Ctrl; X Bewerken Knippen

  Knipt de momenteel geselecteerde dienst naar het klembord.

&Ctrl; C Bewerken Kopiëren

  Kopieert de geselecteerde dienst naar het klembord, zonder dat het van de oorspronkelijke positie wordt gehaald.

&Ctrl; V Bewerken Plakken

  Plakt de inhoud van het klembord op de huidige cursorpositie.

Bewerken Eigenschappen

  Opent de eigenschappendialoog van de geselecteerde dienst.

#### Het menu Hulpmiddelen

Hulpmiddelen Dienst starten...

  Start de geselecteerde dienst

Hulpmiddelen Dienst stoppen...

  Stopt de geselecteerde dienst

Hulpmiddelen Dienst herstarten...

  Herstart de geselecteerde dienst.

Hulpmiddelen Dienst bewerken...

  Bewerkt de geselecteerde dienst

#### Het Instellingen menu

Instellingen Werkbalk tonen

  Toont of verbergt de werkbalk.

Instellingen Statusbalk tonen

  Toont of verbergt de statusbalk.

Instellingen Log tonen

  Toont of verbergt het logvenster

Instellingen Instellingen opslaan

  Slaat uw huidige instellingen op.

Instellingen Sneltoetsen instellen...

  Pas de standaardtoetsenbindingen aan.

Instellingen Werkbalken instellen...

  Stel de werkbalk in.

Instellingen SysV Init Editor instellen...

  Verander het gedrag van &ksysv;

#### Het menu Help

&help.menu.documentation;

## Configuratie

Alle opties worden opgeslagen in `$`KDEHOME`/share/config/ksysvrc`. De standaardconfiguratie wordt gehaald uit het systeembestand (`$`KDEDIR`/share/config/ksysvrc`), indien beschikbaar, en anders gegenereerd door &ksysv;. Veranderingen in de instellingen worden opgeslagen in uw lokale `ksysvrc`.

### Herkende secties

Herkende secties en sleutels en hun standaardwaarden.

#### [Path Settings]

Keyword Default Description
- ScriptPath `/etc/rc.d/init.d` Path to the scripts used for starting and stopping services.
- RunlevelPath `/etc/rc.d` Path to the runlevel subfolders.

#### [Colors]

Keyword Default Description
- Changed red Color used for changed entries
- New blue Color used for new entries

#### [Geometry]

Keyword Default Description
- Width Width of &ksysv;'s window
- Height Height of &ksysv;'s

#### [Other Settings]

Keyword Default Description
- ToolBar true If the toolbar is enabled or not
- StatusBar true If the statusbar is enabled or not
- ShowLog true If the log window is shown or not
- PanningFactor 80 100 - PanningFactor = percentage of window reserved for the logfile display

## Vraag en antwoord

Ik heb de runlevel gewijzigd, en nu start mijn computer de hele tijd op. Wat kan ik hieraan doen?

Als u LILO als bootmanager gebruikt, voer `Linux single` in op de LILO-prompt en druk op de toets Enter. De computer start nu in single user mode. Bewerk het bestand `/etc/inittab` en verander de standaard-runlevel in een bruibare. `3` en `5` zijn het meest gebruikelijk. Mocht u een andere bootmanager gebruiken, lees dan de documentatie van uw distributie.

Mijn computer sluit meteen af na het opstarten

Zie vraag 1, hierboven.

Ik heb een aantal diensten geplaatst in runlevel X met behulp van &ksysv;. Maar waarom werken die niet?

Als u SuSE of Delix (DLD) gebruikt, dan dient u ook een voor deze distributies specifiek bestand in de map `/etc` bewerken. Lees de handboeken van uw distributie voor meer details.

De benadering om diensten te starten die door bovenstaande distributies gebruikt wordt maakt het instellen van diensten eenvoudiger voor de meegeleverde eigen configuratieprogramma's. Helaas is deze benadering niet standaard. De auteurs van &ksysv; hebben een generieke extensie voor deze benadering geschreven, daarnaast is het mogelijk dat nieuwere versies van de distributies niet langer gebruik maken van hun eigen specifieke configuratie. Informeer daarom of het gebruik van dit programma(versie) mogelijk is met de distributieversie die u gebruikt.

Als u een andere distributie gebruikt, controleer dan dat u alle configuratiebestanden die door de dienst nodig zijn hebt, en dat ze op de luiste locaties te vinden zijn. Sommige daemons, zoals Apache (ook wel bekend als `httpd`), stoppen stilletjes als hun configuratiebestanden afwezig zijn of onjuist ingesteld.

## Standaardopmaak van runlevels

Deze verschillen per distributie. Deze lijst toont de opmaak van &RedHat;. Veel distributies, zoals SuSE en Mandrake volgen de opmaak van RedHat. Als u aanvullende distributies kent, stuur deze dan aan de auteur van dit document, zodat ze kunnen worden toegevoegd aan dit handboek.

&RedHat;
  Runlevel 0:

    halt (sluit de computer af)

  Runlevel 1:

    Single user mode (enkelvoudige gebruikermodus).

  Runlevel 2:

    Multi-user, alleen tekst en zonder NFS.

  Runlevel 3:

    Multi-user, alleen tekst, met volledige netwerkondersteuning.

  Runlevel 4:

    Ongebruikt.

  Runlevel 5:

    Multi-user, X11 met volledige netwerkondersteuning.

  Runlevel 6:

    Herstarten

## Dankbetuigingen en licenties

&ksysv; copyright © 1997-1998 Peter Putzer

- Peter Putzer, putzer@kde.org - Ontwikkelaar

Documentatie:

- Peter Putzer, putzer@kde.org - Oorspronkelijke inhoud

- Eric Bischoff, e.bischoff@noos.fr - schrijver

&meld.fouten;&vertaling.niels; &underFDL; &underGPL;

## Installatie

&install.intro.documentation; &install.compile.documentation;