In Linux i c.d. runlevel, espressione che potrebbe essere traducibile in italiano con modalità di esecuzione, indicano appunto le varie modalità di avvio ed esecuzione del sistema operativo.
Nel mondo Unix ci sono 2 principali approcci al processo di startup del sistema: quello usato da System V e quello, meno complesso ma meno flessibile, usato dai sistemi della famiglia BSD .
Linux utilizza il metodo derivato da System V, che si basa su differenti runlevel, astrazioni software per indicare diversi stati della macchina in cui possono girare diversi programmi.
I livelli previsti secondola Linux Standard base sono 6, ognuno ha una particolare caratteristica e funzione:
Runlevel 0 : Avvia la sequenza di arresto del sistema (shutdown)
Runlevel 1: Rappresenta la modalità singolo utente, nessun altro utente può collegarsi, il servizio di rete è disabilitato.
Runlevel 2: Rappresenta lo stato multiutente, il servizio rete è attivo ma è disabilitato il file sharing.
Runlevel 3: In genere è quello predefinito quando si opera in modalità testuale, tutti i servizi sono attivi.
Runlevel 4: Inutilizzato. Può essere dedicato ad usi personali
Runlevel 5: E' il predefinito quando si vuole avviare Linux in modalità grafica
Runlevel 6: serve a riavviare la macchina
Ad ogni runlevel corrisponde un apposito script di avvio situato nelle directory /etc/rc.d/
Il percorso completo per ognuno dei suddetti file è:
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
/etc/rc.d/rc6.d
al nome di ogni script contenente un determinato numero corrisponde il relativo runlevel.
il comportamento dei suddetti e regolato nel file /etc/inittab che definisce appunto cosa faccia ciascuno dei runlevels.
Appena dopo il suo avvio il kernel lancia il processo init che a sua volta andrà a leggere il contenuto del file inittab per analizzare il comportamento di ciascun runlevel.
Lo script /etc/rc.d/rc gestisce quali processi far partire a seconda del runlevel, andando ad analizzare le singole directory /etc/rc.d/rc#.d
(ove # sta per il numero associato ad un particolare runlevel).
In queste directory esistono una serie di collegamenti simbolici con nomi del tipo S12syslog o K65identd che puntano a degli script con nomi tipo:
/etc/rc.d/init.d/syslog
/etc/rc.d/init.d/identd
/etc/rc.d/rc
a seconda della directory corrispondente al runlevel da caricare, che fan partire tutti gli script che iniziano con S (S per start) e fa chiudere tutti quelli che iniziano con K (K per kill), eseguendoli nell'ordine indicato dal numero presente nei nomi dei suddetti collegamenti.
Gli script che di fatto permettono di gestire l'avvio o lo stop di un servizio sono quindi nella directory /etc/rc.d/init.d/ e possono essere utilizzati direttamente dall'utente per gestire i singoli processi.
Per esempio: /etc/rc.d/init.d/httpd start fa partire il server Web e /etc/rc.d/init.d/stop lo fa stoppare.
Se abbiamo il file (un collegamento a ../init/httpd ) /etc/rc.d/rc3.d/S85httpd, ad esempio, avremo un server web avviato quando la macchina è al run-level3 (runlevel di default per un server, che non ha necessità di X windows).
Se vogliamo evitare che venga avviato un server web, basterà rinominare il file, sostituendo la K alla S:
mv /etc/rc.d/rc3.d/S85httpd /etc/rc.d/rc3.d/K85httpd
Nel fare queste operazioni va sempre considerato il numero dopo la prima lettera, che determina l'ordine di esecuzione degli script.
Questa è una logica comune a tutti gli Unix derivati da System V, possono cambiare i nomi dei runlevel, e in certi casi la funzione, ma non la logica di questa struttura di boot.
fonte: Wikipedia
LinuxMX è un sito creato da Maestri Carlo.
Tutti i contenuti del sito sono disponibili con una Licenza Creative Commons CC-BY-NC-SA
Tutti i loghi e marchi registrati presenti in questo sito sono di proprietà dei rispettivi proprietari.
Design by 99Theme.com Modificato da Maestri Carlo - Copyright 2010 © Joomla