Cosa sono i "runlevel" su Linux?

Sommario:

Cosa sono i "runlevel" su Linux?
Cosa sono i "runlevel" su Linux?

Video: Cosa sono i "runlevel" su Linux?

Video: Cosa sono i
Video: Problemi di Pixel e di risoluzione del Monitor - (video ufficiale Dell) - YouTube 2024, Ottobre
Anonim
Quando un sistema Linux si avvia, entra nel suo runlevel predefinito ed esegue gli script di avvio associati a quel runlevel. È anche possibile passare da un runlevel all'altro; ad esempio, esiste un runlevel progettato per operazioni di ripristino e manutenzione.
Quando un sistema Linux si avvia, entra nel suo runlevel predefinito ed esegue gli script di avvio associati a quel runlevel. È anche possibile passare da un runlevel all'altro; ad esempio, esiste un runlevel progettato per operazioni di ripristino e manutenzione.

Tradizionalmente, Linux utilizzava script di init in stile System V - mentre i nuovi sistemi di init finiscono per avere obsoleti i runlevel tradizionali, non lo hanno ancora fatto. Ad esempio, il sistema Upstart di Ubuntu utilizza ancora gli script in stile System V tradizionali.

Cos'è un runlevel?

Quando si avvia un sistema Linux, avvia dentro processi. init è responsabile dell'avvio degli altri processi sul sistema. Ad esempio, quando avvii il tuo computer Linux, il kernel avvia init e init esegue gli script di avvio per inizializzare l'hardware, attivare la rete, avviare il desktop grafico.

Tuttavia, non esiste una sola serie di script di avvio init. Esistono più livelli di esecuzione con i propri script di avvio: ad esempio, un runlevel può portare in rete e avviare il desktop grafico, mentre un altro runlevel può lasciare la rete disabilitata e saltare il desktop grafico. Ciò significa che è possibile passare da "modalità desktop grafico" a "modalità console di testo senza rete" con un singolo comando, senza avviare e arrestare manualmente servizi diversi.

Più in particolare, init esegue gli script che si trovano in una directory specifica che corrisponde al runlevel. Ad esempio, quando si inserisce runlevel 3 su Ubuntu, init esegue gli script che si trovano nella directory /etc/rc3.d.

Almeno, questo è il modo in cui funziona con un sistema di avvio System V tradizionale: le distribuzioni Linux stanno iniziando a sostituire il vecchio sistema System V init. Mentre Upstart di Ubuntu attualmente mantiene la compatibilità con gli script di inizializzazione SysV, è probabile che cambi in futuro.
Almeno, questo è il modo in cui funziona con un sistema di avvio System V tradizionale: le distribuzioni Linux stanno iniziando a sostituire il vecchio sistema System V init. Mentre Upstart di Ubuntu attualmente mantiene la compatibilità con gli script di inizializzazione SysV, è probabile che cambi in futuro.

I runlevel

Alcuni runlevel sono standard tra le distribuzioni Linux, mentre alcuni runlevel variano dalla distribuzione alla distribuzione.

I seguenti runlevel sono standard:

  • 0 – arresto (Spegne il sistema.)
  • 1 – Modalità utente singolo (Il sistema si avvia in modalità superutente senza avviare daemon o rete. Ideale per l'avvio in un ambiente di ripristino o di diagnostica.)
  • 6 – Reboot

I runlevel 2-5 variano a seconda della distribuzione. Ad esempio, su Ubuntu e Debian, i runlevel 2-5 sono uguali e forniscono una modalità multiutente completa con accesso di rete e grafico. Su Fedora e Red Hat, runlevel 2 fornisce modalità multiutente senza rete (solo accesso alla console), runlevel 3 fornisce modalità multiutente con networking (solo accesso alla console), runlevel 4 non utilizzato e runlevel 5 fornisce modalità multiutente con connessione di rete e accesso grafico.

Passare a un runlevel diverso

Per passare a un runlevel diverso mentre il sistema è già in esecuzione, utilizzare il seguente comando:

sudo telinit #

Sostituisci # con il numero del runlevel a cui vuoi passare. Ometti sudo ed esegui il comando come root se stai eseguendo una distribuzione che non usa sudo.

Image
Image

Avvio diretto a un runlevel specifico

È possibile selezionare un runlevel da avviare dal boot loader - Grub, ad esempio. All'inizio del processo di avvio, premere un tasto per accedere a Grub, selezionare la voce di avvio e premere e per modificarlo.

Image
Image

Puoi aggiungere singolo alla fine del linux linea per inserire il runlevel per utente singolo (runlevel 1). (Premi Ctrl + x per avviare dopo.) Questa è la stessa opzione di ripristino in Grub.

Image
Image

Tradizionalmente, è possibile specificare un numero come parametro del kernel e si dovrebbe avviare tale runlevel, ad esempio utilizzando 3 invece di singolo per avviare il runlevel 3. Tuttavia, questo non sembra funzionare sulle ultime versioni di Ubuntu - Upstart non sembra consentirlo. Allo stesso modo, il modo in cui cambi il runlevel predefinito dipenderà dalla tua distribuzione.

Mentre il demone Upstart di Ubuntu emula ancora il sistema init SystemV, molte di queste informazioni cambieranno in futuro. Ad esempio, Upstart è basato su eventi: può arrestare e avviare servizi quando si verificano eventi (ad esempio, un servizio potrebbe avviarsi quando un dispositivo hardware è connesso al sistema e fermarsi quando il dispositivo viene rimosso). Fedora ha anche il suo successore inizializzare, systemd.

Consigliato: