Configurazione di init per inizializzare le getty: il file /etc/inittab

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.

Note

[1]

Usando il comando kill -HUP 1 da root, ad esempio.

[2]

Versioni diverse di getty funzionano in maniera diversa. Consultate la pagina man, ed assicuratevi che sia quella giusta.