# Il manuale di &ksysv;

Peter
Putzer

    putzer@kde.org

    valerio.p@libero.it

2001-03-21
1.03.06
1998
2000
2001
Peter Putzer
&FDLNotice;

&ksysv; è un editor grafico per la configurazione dell'inizializzazione del sistema con lo stile di SysV.

KDE
KSysV
Runlevel
Editor del runlevel
System V init

## Introduzione

Benvenuto nel System V Init Editor di &kde; comunemente conosciuto (e da qui in poi sarà il suo nome) come &ksysv;. Questa sezione introduce un po' di concetti e spiega che cosa si possa fare con &ksysv;.

## Una breve descrizione di System V Init

La seguente spiegazione è ripresa da tksysv (fonte di ispirazione per &ksysv;):

System V init sta diventando velocemente uno standard nel mondo &Linux; per controllare il lancio di programmi all'avvio. Questo perché è decisamente più facile da usare e più potente e flessibile del tradizionale init di BSD.

Non entro nei dettagli della storia in questa sede (principalmente perchè non la so :-).

L'eseguibile di init è collocato in `/sbin` e non in `/etc`. Questo è importante perché si potrebbe tentare di aggiornare una macchina a System V init senza necessariamente ripetere l'installazione e formattare. Il kernel &Linux; cerca prima di tutto in `/etc` il proprio init, così si deve essere sicuri e cancellare il vecchio init da là se presente.

SysV init si differenzia pure dall'init BSD per il fatto che i file di configurazione sono in una sottodirectory di `/etc` invece di risiedere direttamente in `/etc`. Questa directory si chiama `rc.d`. Al suo interno si trovano `rc.sysinit` e le seguenti directory:

- `init.d/`

- `rc0.d/`

- `rc1.d/`

- `rc2.d/`

- `rc3.d/`

- `rc4.d/`

- `rc5.d/`

- `rc6.d`

`init.d` contiene un insieme di script. In sostanza, si ha bisogno di uno script per ogni servizio che si possa aver la necessità di lanciare all'avvio o quando si sta entrando in un altro runlevel. I servizi includono cose come il networking, NFS, &Sendmail;, httpd,&etc; I servizi non includono cose come `setserial` che devono solo essere lanciati una volta e poi fermati. Cose come quella dovrebbero andare nel file `rc.local`.

`rc.local` dovrebbe trovarsi in `/etc/rc.d` se se ne vuole uno. La maggior parte dei sistemi ne include uno anche se non fa poi molto. Si può pure includere un file `rc.serial` in `/etc/rc.d` se si ha bisogno di compiere operazioni specifiche sulla porta seriale all'avvio.

La catena degli eventi è come segue:

1. Il kernel cerca in diversi posti per l'init e avvia il primo che trova.

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

3. `rc.sysinit` fa un mucchio di cose necessarie e successivamente avvia `rc.serial` (se esiste).

4. init avvia `rc.local`

5. init avvia tutti gli script per il runlevel predefinito

Il runlevel predefinito è stabilito in `/etc/inittab`. Si dovrebbe avere una linea vicina all'inizio del file simile a:

    id:3:initdefault:

Da questo, si dovrebbe cercare nella seconda colonna e vedere che il runlevel predefinito è il numero 3, come dovrebbe essere nella maggior parte dei sistemi. Se si vuole cambiare, si può modificare `/etc/inittab` a mano e cambiare il 3 con un altro numero. Prestare la massima attenzione se ci si cimenta con inittab. In caso di problemi, lo si può rimettere a posto riavviando e digitando:

    LILO boot: linux
    single

Questo comando dovrebbe permettere di avviare in modalità a singolo utente così da permettere di aggiustare il pasticcio.

Ora, come avvia i giusti script? Se si digita in console ``ls` `-l`` nella directory `rc3.d`, si dovrebbe vedere una cosa tipo:

    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

Quello che si nota è che non ci sono veri file nella directory. Tutto quello che c'è lì è un collegamento ad uno degli script nella directory `init.d`.

I collegamenti hanno pure una `S` e un numero all'inizio. La lettera`S` vuol dire di avviare quel particolare script e la `K` sarebbe per fermarlo. Init avvierà tutti i servizi basandosi sull'ordine in cui compaiono. Si possono avere numeri duplicati, ma ci si confonderà solamente in questo caso. Si ha solo bisogno di usare un numero di due cifre, preceduto da una lettera `S` o`K` maiuscola per lanciare o fermare i servizi di cui si ha bisogno.

Come si avviano o si fermano i servizi? Semplice. Ognuno degli script è scritto in modo da accettare un argomento che può essere `start` e `stop`. Si possono eseguire quegli script a mano; infatti alla linea di comando si digita:

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

Per fermare il server httpd. Init appena legge il nome e se ha una `K`, chiama lo script con l'argomento `stop`. Se avesse una `S` chiamerebbe lo script con un argomento `start`.

### Perché Tutti Questi Runlevel?

Alcune persone vogliono un modo semplice di configurare le macchine per avere più utilizzi diversificati. Potrei avere un runlevel da server che avvia solo httpd, sendmail, networking, &etc;. Successivamente potrei avere bisogno di un runlevel da user che avvia kdm, networking, &etc;

## Fondamenti di ciò che appare sullo schermo

Da qui si impara come usare &ksysv; che non sarebbe difficile dato che è stato concepito per essere il più possibile "user-friendly" (lett.: amichevole per l'utente).

### Mouse

Usare &ksysv; con un mouse o un altro dispositivo di puntamento è facile. Semplicemente si trascini una voce dall'area Servizi Disponibili su di uno dei sei runlevel per avviarlo (o rispettivamente fermarlo) in quel runlevel.

Si può pure muovere gli script tra i runlevel, o cambiare la loro posizione in un dato runlevel trascinandoli in giro. Facendo così, si rimuove la voce dal proprio runlevel originale (o dalla posizione). Questo non succede quando si trascina una voce dall'area Servizi Disponibili.

Le voci sono spostate quando le si trascina in una nuova area. Per copiare un servizio in un runlevel differente, si deve selezionare Copia dal menu Modifica o da quello contestuale e Incolla nel runlevel di destinazione.

Il numero d'ordinedi una voce a volte non può essere calcolato. In tal caso, si deve modificare il numero d'ordine delle voci circostanti prima di riprovare ad inserire il servizio.

I numeri d'ordine possono variare tra 00 e 99, ma non di più.

Si può cancellare le voci trascinandole sull'area del Cestino (simboleggiata da un'icona che dipinge un cestino dei rifiuti).

Attualmente non c'è un modo per ripristinare le voci trascinate sul Cestino, quindi usare la massima attenzione!

### Tastiera

Si può usare il tasto Tab per focalizzare tra i diversi pannelli (Servizi Disponibili, Runlevel 1 Start, Runlevel 1 Stop, &etc;) e i tasti cursore per muovere la selezione su e giù.

Per muovere una voce ad un runlevel differente, la siTaglia negli appunti (usando &Ctrl; X) e la si Incolla nel runlevel di destinazione (con &Ctrl; V).

Per cambiare manualmente il numero d'ordine delle voci o il nome, premere Invio per aprire la finestra di dialogo proprietà. Si usi il tasto Tab per saltare tra i diversi campi. Si chiuda la finestra di dialogo premendo ancora Invio per accettare le modifiche, oppure Esc per annullare ogni cambiamento.

### Le Voci Del Menu

Un descrizione voce per voce del menu di &ksysv;.

#### Il menù File

A causa del pericolo di perdita di dati, tutti le voci di menu sotto File chiedono la conferma prima di fare il proprio lavoro.

File Ripristina la Configurazione

  Abbandona tutti i cambiamenti che si sono compiuti e riporta all'ultima configurazione salvata.

&Ctrl; O File Apri...

  Apre una configurazione precedentemente salvata.

&Ctrl; S File Salva la configurazione...

  Rende i tuoi cambiamenti permanenti.. Il salvataggio non genera alcun file di backup, perciò si deve usare cautela.

File Salva con nome...

  Salva una copia della nuova configurazione.

&Ctrl; L File Salva il Log...

  Salva un registro delle azioni compiute.

&Ctrl; P File Stampa il Log...

  Stampa una copia del registro dei cambiamenti.

&Ctrl; Q File Esci

  Esce da &ksysv;.

#### Il menu Modifica

&Ctrl; Z Modifica Annulla

  Annulla l'ultimo cambiamento non salvato.

&Ctrl; Shift Z Modifica Rifai

  Ripete l'ultima azione annullata.

&Ctrl; X Modifica Taglia

  "Taglia" il servizio attualmente selezionato ponendolo negli appunti.

&Ctrl; C Modifica Copia

  Copia la voce selezionata negli appunti, senza rimuoverla dalla sua posizione originale.

&Ctrl; V Modifica Incolla

  Incolla il contenuto degli appunti nell'attuale posizione del cursore.

Modifica Proprietà

  Apre la finestra di dialogo delle proprietà dell'oggetto selezionato.

#### Il menu Strumenti

Strumenti Avvia il Servizio...

  Avvia il servizio selezionato

Strumenti Ferma il Servizio...

  Ferma il servizio selezionato

Strumenti Riavvia il Servizio...

  Riavvia il servizio selezionato

Strumenti Modifica il Servizio...

  Modifica il servizio selezionato

#### Il menu Impostazioni

Impostazioni Mostra la barra degli strumenti

  Mostra/nasconde la barra degli strumenti.

Impostazioni Mostra la barra di stato

  Mostra/nasconde la barra di stato.

Impostazioni Mostra il Log

  Mostra/nasconde la finestra del registro dei cambiamenti.

Impostazioni Salva impostazioni

  Salva le impostazioni attuali.

Impostazioni Configura le scorciatoie...

  Personalizza le scorciatoie da tastiera predefinite.

Impostazioni Configura la barra degli strumenti...

  Personalizza la barra degli strumenti.

Impostazioni Configura Editor di KDE per SysV-Init ...

  Personalizza il comportamento di &ksysv;

#### Il menù di Aiuto

&help.menu.documentation;

## Configurazione

Tutte le opzioni sono salvate in `$`KDEHOME`/share/config/ksysvrc`. Quelle predefinite sono prese dal file globale (`$`KDEDIR`/share/config/ksysvrc`), se disponibile, o altrimenti generato all'interno di &ksysv;. Cambiamenti alle impostazioni predefinite sono conservate nel proprio `ksysvrc` locale.

### Sezioni Riconosciute

Sezioni riconosciute e tasti relativi, più i loro valori predefiniti.

#### &lsqb; Impostazioni dei percorso&rsqb;

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 subdirectories.

#### &lsqb;Colori&rsqb;

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

#### &lsqb;Geometria&rsqb;

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

#### &lsqb;Varie&rsqb;

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

## Domande e risposte

Ho giocato un po' con il runlevel predefinito ed ora la mia macchina si riavvia per tutto il tempo. Cosa posso fare?

Digita `linux single` al prompt di LILO e premi Invio per avviare il computer in modalità a singolo utente. Modifica il file `/etc/inittab` e cambia il runlevel predefinito in qualcosa di non pasticciato. `3` normalmente dovrebbe essere sicuro.

La mia macchina si spegne subito dopo l'avvio.

Vedere sopra la Domanda 1.

Ho pianificato l'avvio di alcuni servizi nel runlevel X usando &ksysv;,perché non stanno funzionando?

Se stai usando distribuzioni come la SuSE o Delix (DLD), devi pure modificare un file specifico della distribuzione in `/etc`. Per favore, dai un'occhiata al manuale della tua distribuzione per i dettagli.

L'approccio per lanciare i servizi usati dalle distribuzioni summenzionate rende la configurazione dei servizi semplice per gli strumenti di configurazione proprietari che queste distribuzioni forniscono, ma sfortunatamente ciò non è standard. Gli autori di &ksysv; pensano di scrivere una generica estensione di questo approccio in un futuro ipotetico, ma non fateci troppo affidamento.

Se stai usando una distribuzione differente, per favore controlla di avere tutti i file di configurazione necessari al servizio e, nel caso, che si trovino nella locazione corretta. Alcuni demoni, per esempio Apache, (aka `httpd`) muoiono subito silenziosamente se i loro file di configurazione mancano o sono configurati male.

## Semantiche standard dei Runlevel

Queste variano a seconda della distribuzione, così questa è una lista incompleta delle distribuzioni &Linux; più comuni. Se si ha una distribuzione diversa, per favore si invii una e-mail all'autore e in futuro le informazioni saranno aggiunte a questo manuale.

&RedHat;
  Runlevel 0:

    halt (spegne la macchina)

  Runlevel 1:

    Modalità a singolo utente.

  Runlevel 2:

    Multi-utente con solo testo, senza NFS.

  Runlevel 3:

    Multiutente con solo testo, con network totalmente funzionante.

  Runlevel 4:

    Non usato.

  Runlevel 5:

    Multiutente X11 con network totalmente funzionante.

  Runlevel 6:

    Riavvio

## Crediti e Licenze

&ksysv; Copyright©1997-1998 Peter Putzer

- Peter Putzer, putzer@kde.org - Sviluppatore

Documentazione:

- Peter Putzer, putzer@kde.org - Contenuto originale

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

Valerio Passinivalerio.p@libero.it

&underFDL; &underGPL;

## Installazione

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