Usare i runlevel di Gentoo

Contenuti:

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.



Ultimo aggiorn.:
25 Febbraio 2004
Aaron Walker
Da un'idea di

Enrico Morelli
Autore

Sommario: Questo articolo spiega in dettaglio come creare run level personalizzati.
- 2002 Gentoo.it - Domande, commenti e/o correzioni? Email gentoo-dev@gentoo.it.