2.5 I runlevel
GNU/Linux ha la posssibilità di “funzionare” in 11 modalità differenti, dette runlevel. I
runlevel non sono altro che dei valori che identificano la modalità di funzionamento del
sistema, come riportato di seguito
-
0 (halt mode) è la modalità di preparazione allo spegnimento del sistema;
-
1 (single-user mode) è la modalità di funzionamento con un solo utente. Praticamente il
sistema permette l’accesso ad un solo utente;
Dal file /etc/inittab mostrato nella sez. 2.3 (preso da una distribuzione
Red Hat) si vede che nel runlevel 1 non viene aperto nessun terminale virtuale,
ma in tal caso ci pensa /etc/rc.d/rc.sysinit ad aprire un terminale che
permette all’utente di accedere al sistema con i diritti di superuser (non
richiedendo l’autenticazione da parte dell’utente).
|
-
2 (multi-user mode no NFS) è la modalità di funzionamento in multiutenza (fino a 6 utenti
contemporanei sulla stessa macchina fisica), analogo al runlevel 3, ma senza
NFS;
-
3 (full multi-user mode) è la modalità di funzionamento in multiutenza (fino a 6 utenti
contemporanei sulla stessa macchina fisica). Praticamente il sistema apre 6 terminali
virtuali;
-
4 è una modalità non definita. Può essere utilizzata per definirne una particolare;
-
5 (full multi-user graphic mode) è la modalità di funzionamento in multiutenza con avvio
automatico dell’interfaccia grafica. Praticamente il sistema apre 6 terminali virtuali ed un
terminale grafico;
-
6 (reboot mode) è la modalità di preparazione al riavvio del sistema (spegnimento +
riavvio);
-
7 non documentato;
-
8 non documentato;
-
9 non documentato;
-
S modalità speciale single-user.
Generalmente, quando un sistema GNU/Linux viene avviato in modalità grafica, il
runlevel di avvio (v. riga che si riferisce alla direttiva initdefault nel file /etc/inittab) è il
5, se invece viene avviato in modalità testo (interfaccia carattere), il runlevel di avvio è il
3.
Il runlevel corrente può essere visualizzato con il comando runlevel (man page
runlevel(8)).
____________________________________________________________________
Comando: runlevel
Path: /sbin/runlevel
SINTASSI
# runlevel [logfile]
DESCRIZIONE
-
logfile specifica il nome del file di log da considerare (per default viene considerato
il file /var/run/utmp);
_______________________________________________________________________________________
Tale comando visualizza il runlevel precedente e quello corrente leggendoli dal system status
file
(/var/run/utmp). Se il runlevel precedente non esiste, sarà visualizzato il carattere ‘N’. Per lo
stesso scopo può essere utilizzato anche il comando who -r. I runlevel dovrebbero comunque
essere anche memorizzati nelle variabili di ambiente RUNLEVEL (runlevel corrente) e PREVLEVEL
(runlevel precedente).
Il cambiamento di runlevel può essere effettuato anche durante il funzionameno del
sistema, con il comando telinit (man page init(8)).
__________________________________________________________________________________________________________
Comando: telinit
Path: /sbin/telinit
SINTASSI
# telinit [option] [runlevel]
DESCRIZIONE
-
option indica la modalità di funzionamento di telinit. Può assumere i seguenti
valori
-
-t sec specifica l’intervallo di tempo (in secondi) che init deve attendere
tra l’invio del segnale SIGTERM e quello del segnale SIGKILL. Se non
specificato il valore di default è 5 (5 secondi);
-
Q | q indica a init di rielaborare tutte le direttive contenute nel file
/etc/inittab;
-
S | s indica a init di portare il sistema nella speciale modalità single-user;
-
U | u indica a init di rieseguirsi (preservando lo stato) senza riesaminare
il file /etc/inittab. Questo avviene soltanto se il runlevel attuale è
uno dei seguenti: 1, 2, 3, 4, 5, S;
-
runlevel indica il runlevel da impostare. Può assumere i seguenti valori
-
0 | 1 | 2 | 3 | 4 | 5 | 6
indica a init di impostare il nuovo runlevel specificato;
-
a | b | c
indica a init di rielaborare le direttive contenute nel file
/etc/inittab relativa al runlevel a, b o c;
_______________________________________________________________