Il runlevel

Vediamo cosa succede quando facciamo partire la nostra bella distro Linux.

Cosa è il runlevel ?

I sistemi GNU/Linux utilizzano un sistema d’avvio molto particolare.

Il kernel dopo il bootstrap manda in esecuzione un processo chiamato init, tale processo ha il compito di avviare il sistema e renderlo operativo avviando i relativi servizi e programmi.

Il file di configurazione di init è inittab presente nella directory /etc, da lì l’init può leggere e portare il sistema su diversi livelli operativi, tali livelli vengono chiamati runlevel.

Init successivamente porterà il sistema da un livello all’altro.

L’inittab

Come già detto in precedenza il file inittab è il file di configurazione che indica al processo init come sono impostati i runlevel.

Il file si trova in /etc/inittab , all’interno del file ci sono definite le directory con gli script d’avvio per i diversi runlevel.

La sintassi delle righe presenti all’interno dell’inittab sono così formate:

id:runlevel:azione:processo

Ecco un esempio:

#Script to run when going multi user.
rc:2345:wait:/etc/rc.d/rc.M

Viene invocata l’azione “wait” che indica ad init di avviare il processo e attenderne la terminazione.

I vari runlevel

Runlevel 0: Avvia la sequenza di spegnimento.

Runlevel 1: Modalità utente singolo, può lavorare solo root.

Runlevel 3: Modalità multi utente.

Runlevel 4: Modalità grafica.

Runlevel 6: Avvia la sequenza di reboot.

Su Slackware i livelli 2 e 5 non vengono usati, vengono configurati automaticamente come il livello 3
I livelli 0, 1, 3, 6 sono impostati di default, il resto dei livelli possono essere personalizzati dall’amministratore.
Se volessimo avere un ulteriore livello (5 per esempio) che ci permetta di avviare i servizi di rete a parte potremmo benissimo farlo.

Gli scripts

All’interno dell’inittab sono inseriti i percorsi dei file da avviare, i nomi dei file possono variare da distro a distro, se per ubuntu il file si chiama rc.3 su Slackware si chiamerà rc.M

Gli script stanno all’interno della directory /etc/rc.d, dentro ogni script sono contenute righe di codice bash che effettuano controlli sui vari file e sulle varie risorse da avviare/utilizzare/terminare.

Su Slackware i file sono:

rc.0 = Shutdown

rc.4 = GUI

rc.6 = Reboot

rc.K = Single User

rc.M = CLI

rc.S = Start

Grazie a questo meccanismo è possibile scegliere quali servizi/programmi avviare durante il boot, questo ci consente di disattivare processi inutili velocizzando in maniera esponenziale l’avvio di linux.Su Slackware alcuni script creati per far partire i vari demoni (I Demoni {Daemons in inglese} sono come i “servizi” sicuramente noti ai nostri “cari amici windowsiani”) sono presenti nella stessa directory (/etc/rc.d), a noi basta togliere i permessi di esecuzione a tali script per non farli partire durante il boot (chmod -x script), se per esempio avete un vecchio pc che non dispone di bluetooth a che vi serve avviare il demone per tale utilizzo ? Date un bel “#: chmod -x rc.bluetooth” per  non far partire all’avvio tale applicazione, tempo e risorse risparmiate.

Ovviamente prima di compiere qualsiasi azione munitevi di una bella copia di backup (FATTO ?) e di buona pazienza controllando che i demoni che disattivate non siano vitali per il corretto funzionamento della macchina. (Se non sapete cosa state facendo c’è il 90% che mandiate tutto a … “Windows” …)

Cambiare il runlevel iniziale

Su molte distro (purtroppo) il runlevel di default è impostato a 4, cioè una volta finiti i runlevel precedenti partirà il runlevel 4 avviando automaticamente la GUI.

Su Slackware (distro seria) il runlevel è impostato a 3, cioè il boot terminerà e lascierà la CLI, toccherà successivamente all’utente loggarsi e se necessario dare il comando opportuno per avviare l’interfaccia grafica.

Ora vi chiederete “Che senso ha perdere tempo loggandosi su una stupida console per poi perdere tempo a digitare un’altro insulso comando ?”

Dopo questa domanda riceverete una testata dal sottoscritto; immaginate di aver problemi con l’interfaccia grafica, problemi con i driver video, avete sotto mano un server, dovete aggiornare il vostro WM/DE, dovete solamente effettuare operazioni da console, volete risparmiare energia elettrica con vostro vecchissimo monitor RCT, vi fanno male gli occhi…
Ecco! Questi sono solo alcuni esempi che vi dimostrano quanto il runlevel 3 sia molto più utile del 4.
All’interno del file inittab precedentemente trattato potete trovare questa riga:

id:4:initdefault:

Basta sostituire il numero 4 con il 3

OVVIAMENTE state attenti a non impostare accidentalmente il runlevel iniziale a 0 o a 6 altrimenti la vostra macchina si spegnerà/riavvierà pochi secondi dopo l’avvio.

Saluti.

About these ads

3 risposte a “Il runlevel

  1. ciao, sono un lettore di vecchia (mooolto) data e trovo l’articolo molto interessante.
    tre cose:
    il paragone con windows è esilarante!
    però l’immagine non corrisponde allo scritto (il rl 4 è quello grafico, nell’immagine c’è il 5° ma questa è una cosa assolutamente relativa e personalizzata in qualsiasi versione)
    infine penso che sia un po futile lodare la slackware per la immediata console, perché se si hanno problemi col server video puoi benissimo passare alla console con la solita combinazione e vai tranquillo, mentre per quanto riguarda il fatto del server di solito non c’è neanche installata una gui, coem per esempio in ubuntu server, c ho messo io dopo un xfce per stare più comodo, ma ora il tuo articolo mi si rivela utile per reimpostare il rl alla shell root perché il mio serverino lo utilizzo da remoto.
    grazie, pavlo.

  2. L’immagine l’ho trovata su internet, però come ho scritto nell’articolo è tutto personalizzabile quindi penso non ci siano problemi.

    Purtroppo io ho avuto esperienze positive solo con Slackware (che uso tutt’ora) quindi non posso non lodarla, è una mia pura fissazione (se pur inutile).

    Sono felice di essermi reso utile.

  3. Pingback: Il runlevel | News tecnologia 24.it

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...