Linux sui blocchi di partenza: configurare il file /ETC/INITTAB
Quello che avviene all'accensione del pc e al boot del sistema operativo in dettaglio
è argomento estremamente complesso.
In poche parole, si possono distinguere 3 fasi:
- inizializzazione del bios e test del processore
-caricamento del kernel
- avvio del system v.
Dopo il montaggio del file system viene eseguito il processo init.
Il processo INIT (/sbin/init) è il processo padre di tutti i processi; è un file eseguibile
che parte automaticamente all'avvio del sistema.
Init determina quali siano i processi da avviare in base al contenuto di /ETC/INITTAB,
il quale a sua volta fa riferimento a una serie di script contenuti solitamente nella
directory /etc/rc.d/.
L'argomento di questo breve articolo è la configurazione del file /ETC/INITTAB
attraverso l'esempio proposto di seguito:
# INIZIO /ETC/INITTAB #
# inittab Questo file descrive come il processo INIT dovrebbe
# configurare il sistema in un certo runlevel
# Autore: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
# Modificato per RHS Linux da Marc Ewing e Donnie Barnes
# Il runlevel di default. I runlevel usati da RHS sono:
# 0 - ferma (non selezionarlo di default)
# 1 - modalità singolo utente
# 2 - multiutente, senza NFS (il solito del 3, se non sei in rete)
# 3 - modalità multiutente completa
# 4 - non utilizzato
# 5 - X11 (cioè con interfaccia grafica)
# 6 - riavvia (non selezionarlo di default)
# Impostiamo il runlevel di default; in questo caso partirà in modalità
# multiutente completa con interfaccia a caratteri.
# Il formato è id:runlevel:azione:processo.
id:3:initdefault:
# Inizializzazione del sistema.
# Viene avviato lo script /etc/rc.d/rc.sysinit (imposta l'hostname
# della macchina, monta la directory /proc e la root in sola
# lettura, attiva lo swap, verifica il file system e le dipendenze).
si::sysinit:/etc/rc.d/rc.sysinit
# Di seguito vengono indicate le directory il cui contenuto viene
# eseguito alla partenza in base al runlevel scelto.
# Wait indica che il processo sarà avviato quando si entra nel
# runlevel e init attenderà la sua terminazione.
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Blocca il CTRL-ALT-DELETE
# se non viene commentato, permette di riavviare il pc premendo i tasti
# ctrl+alt+canc.
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
# Quando il gruppo di continuità avverte della mancanza di tensione,
# si presuppone che abbiamo ancora alcuni minuti di autonomia. Impostiamo
# lo shutdown a 2 minuti da quel momento.
# Si suppone ovviamente di avere il demone powerd installato e il gruppo di
# continuità funzionante.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
# Se in questi 2 minuti la tensione è tornata, lo shutdown è cancellato.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
# Respawn indica che il processo sarà riavviato quando termina.
# In questo caso il 2° terminale può partire solo con runlevel 3, mentre
# il 6° è disabilitato.
1:2345:respawn:/sbin/mingetty tty1
2:3:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
# 6:2345:respawn:/sbin/mingetty tty6
# Lancia xdm per il runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon
# FINE /ETC/INITTAB #