NOME
inittab − formato del file inittab file usato dai processi init compatibili con il System V
DESCRIZIONE
Il file inittab descrive quali processi sono avviati all’avvio e durante le normali operazioni (p.es. /etc/rc, getty...). Init distingue tra diversi runlevel, ognuno dei quali può avere il suo insieme di processi da avviare. I runlevel validi sono 0−6 e A, B e C per le voci ondemand ("su richiesta"). Una voce nel file inittab ha il seguente formato:
id:runlevel:azione:processo
Le righe che iniziano con ’#’ sono ignorate.
id |
è una sequenza unica di 1-4 caratteri che identifica una voce nell’inittab (per versioni di sysvinit compilare con librerie < 5.2.18 o librerie a.out il limite è di 2 caratteri). |
Nota: Per getty o altri processi di login, il campo id dovrebbe essere il suffisso a tty della tty corrispondente, p.es. 1 per tty1. Altrimenti, la registrazione del login potrebbe non funzionare correttamente.
runlevel
descrive in quali runlevel dovrebbe essere intrapresa l’azione specificata.
azione |
descrive quale azione dovrebbe essere intrapresa. |
processo
specifica il processo da eseguire. Se il campo processo inizia con il carattere ’+’, init non effettuerà la registrazione utmp e wtmp per quel processo. Questo è necessario per le getty che insistono nel voler tenere il proprio utmp/wtmp. Questo è anche un bug storico.
Le azioni
valide sono:
respawn
Il processo sarà riavviato quando termina (p.es. getty).
wait |
Il processo sarà avviato quando si entra nel runlevel specificato e init attenderà la sua terminazione. | ||
once |
Il processo sarà eseguito solo una volta quando si entra nel runlevel specificato. | ||
boot |
Il processo sarà eseguito durante il boot del sistema. Il campo runlevel è ignorato. |
bootwait
Il processo sarà eseguito durante il boot del sistema, mentre init aspetta la sua terminazione (p.es. /etc/rc). Il campo runlevel è ignorato.
off |
Non fa niente. |
ondemand
Un processo marcato con un runlevel ondemand (su richiesta) sarà eseguito ogni volta che è chiamato il runlevel ondemand specificato. Comunque, non avverrà nessun cambio di runlevel (i runlevel ondemand sono ’a’, ’b’ e ’c’).
initdefault
Una voce initdefault specifica il runlevel nel quale si dovrebbe entrare dopo il boot del sistema. Se non ne esiste nessuna, init chiederà in console un runlevel. Il campo processo è ignorato.
sysinit
Il processo sarà eseguito durante il boot del sistema. Sarà eseguito prima di qualsiasi voce boot o bootwait. Il campo runlevel è ignorato.
powerwait
Il processo sarà eseguito quando init riceve il signal SIGPWR, che indica che c’è qualcosa che non va nell’alimentazione. Init aspetterà che il processo finisca prima di continuare.
powerfail
Come powerwait, ma init non aspetterà la terminazione del processo.
powerokwait
Il processo sarà eseguito quando init riceve il signal SIGPWR, purché ci sia un file chiamato /etc/powerstatus contenente la parola OK. Ciò significa che l’alimentazione è ritornata.
ctrlaltdel
Il processo sarà eseguito quando init riceve il signal SIGINT. Ciò significa che qualcuno nella console del sistema ha premuto la combinazione di tasti CTRL−ALT−DEL. Tipicamente si vuole eseguire un qualche tipo di shutdown o portare il sistema in single−user level oppure rebootare la macchina.
kbrequest
Il processo sarà
eseguito quando init riceve un segnale dall’handler
della tastiera che indica che una particolare combinazione
di tasti è stata premuta nella tastiera della
console.
La documentazione per questa funzione non è ancora
completa; maggiore documentazione la si può trovare
nei pacchetti kbd-x.xx (quando scrivevo questo manuale il
più recente era kbd-0.91). In parole povere, se si
vuole, ad esempio, mappare qualche combinazioni di tasti per
eseguire l’azione "Spawn_Console". Per
esempio per mappare Alt-Uparrow per questa azione si usi
quanto segue nel proprio keymap file:
alt keycode 103 = Spawn_Console
Il campo runlevel può contenere più caratteri per i diversi runlevel, p.es. 123 se il processo dovrebbe essere avviato nei runlevel 1, 2 e 3. Le voci ondemand possono contenere un A, B o C. I campi runlevel delle voci sysinit, boot e bootwait sono ignorati.
Quando è cambiato il runlevel, qualsiasi processo in esecuzione che non è specificato anche per il nuovo runlevel è killato, prima con SIGTERM , e poi con SIGKILL .
ESEMPI
Questo è un esempio di un inittab che assomiglia al vecchio inittab di Linux:
# inittab per
Linux
id:1:initdefault:
rc::bootwait:/etc/rc
1:1:respawn:/etc/getty 9600 tty1
2:1:respawn:/etc/getty 9600 tty2
3:1:respawn:/etc/getty 9600 tty3
4:1:respawn:/etc/getty 9600 tty4
Questo file inittab esegue /etc/rc durante il boot e lancia getty su tty1−tty4.
Un inittab più elaborato con diversi runlevel (si vedano i commenti all’interno):
# Livello in
cui si entra
id:2:initdefault:
#
Inizializzazione del sistema prima di ogni altra cosa.
si::sysinit:/etc/rc.d/bcheckrc
# I runlevel
0,6 sono halt e reboot, 1 è il modo per la
# manutenzione
l0:0:wait:/etc/rc.d/rc.halt
l1:1:wait:/etc/rc.d/rc.single
l2:2345:wait:/etc/rc.d/rc.multi
l6:6:wait:/etc/rc.d/rc.reboot
# Cosa fare al
"3 finger salute".
ca::ctrlaltdel:/sbin/shutdown -t5 -rf now
# Runlevel
2&3: getty sulla console, il livello 3 fa ha
# anche getty sulla porta del modem.
1:23:respawn:/sbin/getty tty1 VC linux
2:23:respawn:/sbin/getty tty2 VC linux
3:23:respawn:/sbin/getty tty3 VC linux
4:23:respawn:/sbin/getty tty4 VC linux
S2:3:respawn:/sbin/uugetty ttyS2 M19200
FILE
/etc/inittab
AUTORE
Init è
stato scritto da Miquel van Smoorenburg
(miquels [AT] cistron.nl), la pagina di manuale è stata
scritta da Sebastian Lederer
(lederer [AT] francium.de) e modificata da
Michael Haardt (u31b3hs [AT] pool.de).
Traduzione di Giovanni Bortolozzo
<borto [AT] dei.it>