Runlevel
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
modificaOgni 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 file 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
modificaPer conoscere il runlevel attuale e quello precedente si può usare il comando runlevel
.
Cambiare il runlevel in esecuzione
modificaPer 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
modificaCollegamenti esterni
modifica- (EN) Run Levels da Linux Standard Base Core Specification
- (EN) Run Levels da LinuxQuestions.org
- (EN) Runlevel Definition, su linfo.org.
- (EN) Runlevels da ArchWiki
- (EN) Solaris Boot Process, su blogs.oracle.com. URL consultato il 4 maggio 2019 (archiviato dall'url originale il 9 luglio 2013).