Quando si avvia, init legge il file
di configurazione /etc/inittab,
e durante il funzionamento del sistema lo leggerà di nuovo se gli si
manda il segnale HUP[1];
questa caratteristica rende inutile riavviare il sistema per attivare
delle modifiche alla configurazione di
init.
Il file /etc/inittab è piuttosto complicato;
cominceremo con il caso semplice della configurazione delle linee per
le getty. Le linee del file
/etc/inittab consistono di
quattro campi delimitati da due punti:
id:runlevel:azione:processo
I campi sono descritti qui sotto. Oltre a ciò,
/etc/inittab può contenere linee vuote e linee
che cominciano con un cancelletto
(`
#'): entrambe vengono ignorate.
- id
Identifica la linea del file. Per le linee di
getty, specifica il terminale su cui gira
(il carattere dopo /dev/tty
nel nome del file di device). Per altre linee non vuol dire
niente (tranne che per le restrizioni sulla lunghezza), ma non
deve essere univoco.
- runlevel
Il runlevel per cui va considerata la linea. I runlevel vengono
indicati da una sola cifra, senza delimitatori (sono
descritti nella prossima sezione).
- azione
L'azione che deve corrispondere alla linea, ad esempio
respawn per riavviare il comando nel
campo successivo quando esce, o once
per farlo una volta sola.
- processo
Il comando da attivare.
Per aprire una
getty sul primo terminale virtuale
(
/dev/tty1), in tutti i normali runlevel
multiutente (2-5) si dovrebbe scrivere la seguente linea:
1:2345:respawn:/sbin/getty 9600 tty1
Il primo campo dice che questa è la linea di
/dev/tty1;
il secondo che si applica ai runlevel 2, 3, 4 e 5, il terzo campo
significa che il comando deve essere riavviato quando esce (in modo
che ci si possa collegare, scollegare e collegare di nuovo), l'ultimo
è il comando che avvia la
getty sul primo terminale virtuale
[2].
Se voleste aggiungere ad un sistema dei terminali o delle linee
modem in ingresso, dovreste aggiungere altre linee ad
/etc/inittab, una per ciascun terminale o linea.
Per altri dettagli consultate le pagine man di
init, inittab,
e getty.
Se un comando non parte e
init è configurato per farlo ripartire
(restart), userà moltissime risorse di sistema:
init lo avvia, fallisce,
lo avvia, fallisce, e così via all'infinito.
Per evitare una cosa del genere, init
tiene traccia di quanto spesso avvia un comando e se la frequenza
cresce aspetterà cinque minuti prima di avviarlo di nuovo.