Un runlevel è uno stato di init e dell'intero sistema che definisce quali servizi di sistema sono operativi. I runlevel sono identificati da numeri; vedere la tabella 7.1. Non c'è un parere comune per come usare i runlevel definiti a livello utente (dal 2 al 5): alcuni amministratori di sistema usano i runlevel per definire quali sottosistemi funzionano, cioè se gira X, se la rete è operativa e così via. Altri hanno tutti i sottosistemi che girano sempre, o li avviano e li fermano individualmente senza cambiare runlevel, perché i runlevel sono uno strumento troppo grezzo per controllare il sistema. Potete decidere da voi, ma può essere più semplice seguire come fa la vostra distribuzione di Linux.
I runlevel sono configurati da /etc/inittab da linee come questa:
l2:2:wait:/etc/init.d/rc 2Il primo campo è un livello arbitrario, il secondo significa che la linea si applica per il runlevel 2. Il terzo campo dice che init dovrebbe avviare il programma che sta nel quarto campo una sola volta, quando si entra nel runlevel, e che init deve aspettare che sia completato. Il comando /etc/init.d/rc avvia qualsiasi comando sia necessario per far partire o interrompere i servizi per entrare nel runlevel 2.
Il comando nel quarto campo fa tutto il lavoro duro di impostare un runlevel; inizializza i servizi che non stanno girando e ferma quelli che non dovrebbero farlo più nel nuovo runlevel. Quale è esattamente il comando e come sono configurati i runlevel dipende dalla distribuzione di Linux.
Quando parte, init cerca una linea in /etc/inittab che specifichi il runlevel di default:
id:2:initdefault:Potete chiedere a init di andare in un runlevel non di default all'avvio dando al kernel da linea di comando l'argomento single o emergency;7.4 in questo modo si può scegliere la modalità a utente singolo (runlevel 1), che è descritta nella sezione 7.5.
Mentre il sistema gira, il comando telinit può cambiare il runlevel; quando accade, init avvia il comando appropriato da /etc/inittab .