In informatica il runlevel è un concetto tipico dei sistemi UNIX e Unix-like e rappresenta lo stato di attività di una macchina, relativamente ai programmi in esecuzione e ai servizi offerti.
Descrizione Ogni runlevel è identificato da un numero, solitamente compreso tra 0 e 6, e ad ogni stato associato la macchina esegue script di sistema relativi alle funzionalità assegnate a quel livello. Non esiste uno standard su cosa rappresenti ogni singolo runlevel, anche se alcuni sono riservati:
Il runlevel 0 serve ad arrestare (halt) il sistema. In sostanza corrisponde ad uno stato in cui nessun programma è in esecuzione (e la macchina è spenta). Il runlevel 1 è detto Single user mode ("modalità ad utente singolo"): in questo stato non vi sono programmi in esecuzione in background, e nessun utente oltre all'amministratore di sistema ha accesso al sistema, per cui esso è sotto il suo pieno controllo. È utile, ad esempio, per eseguire attività di manutenzione come controlli sui dischi o aggiornare di sistema, dato che vi è la certezza che nessun processo li stia utilizzando e che nessun utente possa intervenire all'insaputa dell'amministratore. Il runlevel 2 avvia la macchina in modalità multiutente con il networking abilitato, ma senza servizi di rete Il runlevel 3 avvia in modalità multiutente con tutte le funzionalità di networking abilitate, e con tutti i relativi servizi attivi. Il runlevel 4 generalmente non è utilizzato; Il runlevel 5 avvia in modalità multiutente con tutte le funzionalità di networking abilitate come il runlevel 3, e con un server grafico (quasi sempre X Window System) abilitato; Il runlevel 6 serve a riavviare (reboot) il sistema. È simile al runlevel 0, con la differenza che al termine dell'inizializzazione, la macchina viene riavviata piuttosto che spenta.
I runlevel rimanenti sono personalizzabili dall'amministratore del sistema. Sui sistemi GNU/Linux è pratica comune avere un runlevel corrispondente alla modalità grafica e uno corrispondente alla modalità testuale. Un altro possibile utilizzo è quello di creare un runlevel in cui vengono lanciati i servizi di rete, e un altro in cui questi non sono attivi, in modo da poter facilmente cambiare tra di essi a seconda della connettività disponibile.
Conoscere il runlevel attuale in esecuzione Per conoscere il runlevel attuale e quello precedente si può usare il comando runlevel.
Cambiare il runlevel in esecuzione Per cambiare runlevel si utilizza il comando init (o telinit), seguito dal numero del runlevel a cui si desidera passare. Esso prenderà tutti i provvedimenti necessari per eseguire il cambio di runlevel.
Voci correlate UNIX init inittab
Collegamenti esterni Run Levels da Linux Standard Base Core Specification Run Levels da LinuxQuestions.org
Runlevels da ArchWiki
Categoria:Unix Categoria:Kernel