Usare i runlevel di Gentoo
1.Introduzione
Questo articolo tenta di approfondire il tema dei run level di Gentoo, che è discusso
nella Guida all'rc-init di Gentoo.
Coloro che usano un portatile dovrebbe trovare particolarmente utile questo articolo dato che
possono trovarsi ad avere necessità di profili differenti a seconda dei luoghi in cui
usano il portatile (connessioni wireless,
connessioni via cavo, connessioni via modem, nessuna connessione, etc).
Comunque anche utenti di desktop potranno beneficiare dell'uso appropriato
dei runlevel di Gentoo.
I runlevel usati in Gentoo sono leggermente differenti dai sistemi con init runlevel
tradizionali. Anche se vengono mantenuti gli init runlevel, gli sviluppatori di Gentoo
hanno deciso di estenderli per permettere una maggiore flessibilità.
Quando vengono menzionati i runlevel numerici, ci riferiamo ai runlevel di init,
mentre quando vengono menzionati runlevel nominali, il riferimento è ai runlevel
di Gentoo che sono in /etc/runlevels.
Di default, Gentoo ha tre runlevel: boot, default e nonetwork.
Con l'eccezione del runlevel boot (che la guida di Gentoo definisce vitale per l'avvio
del sistema), i nomi degli altri runlevel non sono vincolanti permettendoci
di usare i nomi che più ci aggradano, ma che comunque abbiano una corrispondenza
con l'/etc/inittab.
2.Creazione di un nuovo runlevel
La creazione di un nuovo runlevel è semplice quanto creare una nuova directory.
Infatti, create una nuova directory in /etc/runlevels
chiamandola col nome che volete dare al runlevel.
Ecco, per esempio, come creare un nuovo runlevel chiamato noX:
Esempio 1 |
# mkdir /etc/runlevels/noX
|
Potete usare il comando rc-update per aggiungere servizi a questo runlevel.
Per passare da un runlevel all'altro usate il comando rc.
Esempio 2: Aggiungere servizi a noX |
# rc-update add net.eth0 noX
# rc-update add local noX
|
Esempio 3: Passare dal runlevel corrente a noX |
# rc noX
|
Questo fermerà tutti i servizi in esecuzione nel runlevel corrente e che non sono
presenti anche in noX e farà partire invece tutti i servizi esclusivi di noX.
3.Avviare il sistema ad un runlevel personalizzato
Se volete avviare il sistema direttamente in un runlevel di vostra creazione,
dovete editare /etc/inittab ed il file di configurazione del vostro
bootloader.
La descrizione dei runlevel tradizionali non verrà presa in considerazione
(leggere le man page di init (8) per questo), eccetto dire che i runlevel 0, 1 e 6
sono riservati al sistema (rispettivamente per shutdown, single-user mode e reboot).
I runlevel di init sono definiti in /etc/inittab e come mostrato
nella man page di inittab(5), seguono la forma generale descritta di seguito:
Esempio 4: Sintassi di /etc/inittab |
id:runlevel:action:process
|
La parte che ci interessa è quella relativa a process, che definisce
il comando che deve essere eseguito per un particolare runlevel.
In Gentoo, il comando è /sbin/rc nome_del_runlevel (lo stesso comando
per passare da un runlevel all'altro). Di default /etc/inittab
ha impostato i livelli da 3 a 5 per eseguire il runlevel predefinito.
Anche se solo uno di questi è necessario, è raccomandato di lasciare il runlevel 3
all'esecuzione di quello predefinito dato che se non è specificato nessun runlevel
tra i parametri di avvio del kernel, sarà quello utilizzato di default.
Così, continuando col nostro esempio, per avviare direttamente nel runlevel noX
useremo il runlevel 4 e cambieremo la riga corrispondente nel modo seguente:
Esempio 5: Modificare /etc/inittab |
l4:4:wait:/sbin/rc noX
|
C'è solo un ultimo passo da compiere per avviare direttamente nel runlevel
personalizzato. Dovremo editare il file di configurazione del nostro bootloader
aggiungendo alla riga relativa al kernel il numero del runlevel che desideriamo
avviare. Nel mio grub.conf ho deciso di creare una sezione separata per il runlevel noX:
Esempio 6: Esempio di grub.conf |
title=Gentoo Linux (no X)
root (hd0,1)
kernel (hd0,1)/vmlinuz root=/dev/hda7 4
|
Come avete notato è esattamente uguale ad una configurazione normale eccetto per
il 4 in fondo alla riga dei parametri di boot che identifica il runlevel in cui verrà avviato il sistema (chiaramente modificate il numero
del runlevel se ne avete scelto uno diverso).
E questo è tutto.
|