{"id":3619,"date":"2026-07-13T18:02:43","date_gmt":"2026-07-13T16:02:43","guid":{"rendered":"https:\/\/rootmail.it\/courses\/lpic-1-exam-101-010-160-corso-completo-in-italiano\/lessons\/101-3-cambiare-i-runlevel-i-target-di-avvio-e-arrestare-o-riavviare-il-sistema\/"},"modified":"2026-07-20T21:55:14","modified_gmt":"2026-07-20T19:55:14","slug":"101-3-cambiare-i-runlevel-i-target-di-avvio-e-arrestare-o-riavviare-il-sistema","status":"publish","type":"lesson","link":"https:\/\/rootmail.it\/en\/courses\/lpic-1-exam-1-101-500-corso-completo-in-italiano\/lessons\/101-3-cambiare-i-runlevel-i-target-di-avvio-e-arrestare-o-riavviare-il-sistema\/","title":{"rendered":"101.3 Cambiare i runlevel, i target di avvio e arrestare o riavviare il sistema"},"content":{"rendered":"<h2>101.3 Cambiare i runlevel, i target di avvio e arrestare o riavviare il sistema<\/h2>\n<p>Dopo aver compreso il processo di avvio di Linux, \u00e8 importante conoscere come il sistema gestisce i diversi stati operativi e come amministrare correttamente le operazioni di avvio, arresto e riavvio.<\/p>\n<p>Nelle distribuzioni Linux moderne il tradizionale concetto di <strong>runlevel<\/strong>, introdotto da SysVinit, \u00e8 stato sostituito dai <strong>target<\/strong> di <strong>systemd<\/strong>. Sebbene i target rappresentino oggi lo standard, i runlevel continuano a essere un argomento richiesto nell&#8217;esame LPIC-1 e sono ancora presenti nella documentazione di molti sistemi legacy.<\/p>\n<p>In questa lezione scoprirai come funzionano i runlevel e i target di systemd, come cambiare modalit\u00e0 di avvio del sistema e quali comandi utilizzare per arrestare, riavviare o spegnere Linux in modo sicuro.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> L&#8217;esame LPIC-1 richiede di conoscere sia i runlevel di SysVinit sia i target di systemd, oltre ai principali comandi utilizzati per arrestare, riavviare e modificare lo stato operativo del sistema.<\/p>\n<\/blockquote>\n<hr \/>\n<h2>\ud83c\udfaf Obiettivi della lezione<\/h2>\n<p>Al termine di questa lezione sarai in grado di:<\/p>\n<ul>\n<li>comprendere il significato dei runlevel tradizionali di SysVinit;<\/li>\n<li>riconoscere la corrispondenza tra runlevel e target di systemd;<\/li>\n<li>visualizzare e modificare il target di avvio predefinito;<\/li>\n<li>passare da un target all&#8217;altro utilizzando <code>systemctl<\/code>;<\/li>\n<li>arrestare, riavviare e spegnere un sistema Linux in modo sicuro;<\/li>\n<li>comprendere il funzionamento delle modalit\u00e0 di emergenza e di ripristino.<\/li>\n<\/ul>\n<hr \/>\n<h2>Argomenti trattati<\/h2>\n<ul>\n<li>Runlevel di SysVinit.<\/li>\n<li>Target di systemd.<\/li>\n<li>Corrispondenza tra runlevel e target.<\/li>\n<li>Visualizzare e modificare il target predefinito.<\/li>\n<li>Modalit\u00e0 rescue ed emergency.<\/li>\n<li>Comandi per arrestare, spegnere e riavviare il sistema.<\/li>\n<\/ul>\n<hr \/>\n<h2>101.3.1 Comprendere i runlevel<\/h2>\n<p>Nei sistemi Linux basati su <strong>SysVinit<\/strong>, un <strong>runlevel<\/strong> rappresenta lo stato operativo del sistema dopo il completamento del processo di avvio.<\/p>\n<p>Ogni runlevel definisce quali servizi devono essere avviati o arrestati, permettendo al sistema di funzionare in modalit\u00e0 differenti a seconda delle esigenze dell&#8217;amministratore.<\/p>\n<p>Ad esempio, un server di produzione viene normalmente avviato in modalit\u00e0 multiutente, mentre durante attivit\u00e0 di manutenzione pu\u00f2 essere utile avviare il sistema in modalit\u00e0 utente singolo.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> I runlevel sono un concetto storico legato a <strong>SysVinit<\/strong>. Sebbene le distribuzioni moderne utilizzino <strong>systemd<\/strong>, l&#8217;LPIC-1 richiede ancora di conoscerne il significato e le principali caratteristiche.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>I runlevel tradizionali<\/h3>\n<p>La seguente tabella riassume i runlevel utilizzati nei sistemi SysVinit.<\/p>\n<table>\n<thead>\n<tr>\n<th>Runlevel<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>0<\/strong><\/td>\n<td>Arresto del sistema (Halt).<\/td>\n<\/tr>\n<tr>\n<td><strong>1<\/strong><\/td>\n<td>Modalit\u00e0 utente singolo (Single-user mode), utilizzata principalmente per manutenzione e ripristino.<\/td>\n<\/tr>\n<tr>\n<td><strong>2<\/strong><\/td>\n<td>Modalit\u00e0 multiutente. Il significato pu\u00f2 variare in base alla distribuzione.<\/td>\n<\/tr>\n<tr>\n<td><strong>3<\/strong><\/td>\n<td>Modalit\u00e0 multiutente con servizi di rete. Generalmente senza interfaccia grafica.<\/td>\n<\/tr>\n<tr>\n<td><strong>4<\/strong><\/td>\n<td>Runlevel normalmente non utilizzato e disponibile per personalizzazioni.<\/td>\n<\/tr>\n<tr>\n<td><strong>5<\/strong><\/td>\n<td>Modalit\u00e0 multiutente con interfaccia grafica (GUI).<\/td>\n<\/tr>\n<tr>\n<td><strong>6<\/strong><\/td>\n<td>Riavvio del sistema (Reboot).<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> I runlevel <strong>0<\/strong> e <strong>6<\/strong> sono destinati rispettivamente allo <strong>spegnimento<\/strong> e al <strong>riavvio<\/strong> del sistema. Non devono essere impostati come runlevel predefiniti.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Il file \/etc\/inittab<\/h3>\n<p>Nei sistemi basati su <strong>SysVinit<\/strong>, il file:<\/p>\n<pre><code>\/etc\/inittab<\/code><\/pre>\n<p>contiene la configurazione principale del sistema di inizializzazione.<\/p>\n<p>Tra le varie impostazioni, definisce anche il <strong>runlevel predefinito<\/strong> con cui il sistema deve essere avviato.<\/p>\n<p>Un esempio \u00e8 il seguente:<\/p>\n<pre><code>id:3:initdefault:<\/code><\/pre>\n<p>In questo caso il sistema verr\u00e0 avviato automaticamente nel <strong>runlevel 3<\/strong>.<\/p>\n<p>Oltre al runlevel predefinito, il file <code>\/etc\/inittab<\/code> pu\u00f2 contenere istruzioni relative all&#8217;avvio di terminali virtuali, script di inizializzazione e altre configurazioni del sistema.<\/p>\n<blockquote>\n<p><strong>\u26a0\ufe0f Errore comune<\/strong> Molti amministratori cercano il file <code>\/etc\/inittab<\/code> anche nelle distribuzioni moderne. Nei sistemi che utilizzano <strong>systemd<\/strong> questo file \u00e8 generalmente assente oppure ignorato, poich\u00e9 \u00e8 stato sostituito dal concetto di <strong>target<\/strong>.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Perch\u00e9 conoscere ancora i runlevel?<\/h3>\n<p>Anche se oggi quasi tutte le distribuzioni Linux utilizzano <strong>systemd<\/strong>, la conoscenza dei runlevel rimane importante perch\u00e9:<\/p>\n<ul>\n<li>sono ancora presenti nella documentazione tecnica e nei sistemi legacy;<\/li>\n<li>molti script di amministrazione fanno ancora riferimento ai runlevel;<\/li>\n<li>compaiono frequentemente nelle domande della certificazione LPIC-1;<\/li>\n<li>costituiscono la base concettuale dei moderni target di systemd.<\/li>\n<\/ul>\n<blockquote>\n<p><strong>\u2699\ufe0f Best Practice<\/strong> Quando lavori su sistemi Linux moderni utilizza i <strong>target di systemd<\/strong>. Tuttavia, \u00e8 consigliabile conoscere anche i runlevel tradizionali per poter amministrare sistemi meno recenti e affrontare con sicurezza l&#8217;esame LPIC-1.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li>Un runlevel rappresenta lo stato operativo di un sistema Linux basato su SysVinit.<\/li>\n<li>Ogni runlevel determina quali servizi devono essere avviati.<\/li>\n<li>Il file <code>\/etc\/inittab<\/code> definiva il runlevel predefinito nei sistemi SysVinit.<\/li>\n<li>I runlevel sono stati sostituiti dai target di systemd, ma rimangono un argomento importante per la certificazione LPIC-1.<\/li>\n<\/ul>\n<h2>101.3.2 Impostare il runlevel o il target di avvio predefinito<\/h2>\n<p>Dopo aver compreso il concetto di <strong>runlevel<\/strong>, \u00e8 importante sapere come configurare lo stato operativo con cui il sistema viene avviato automaticamente.<\/p>\n<p>Nei sistemi Linux tradizionali basati su <strong>SysVinit<\/strong>, questa configurazione veniva effettuata modificando il file <code>\/etc\/inittab<\/code>. Nelle distribuzioni moderne che utilizzano <strong>systemd<\/strong>, invece, il concetto di runlevel \u00e8 stato sostituito dai <strong>target<\/strong>, che offrono una gestione pi\u00f9 flessibile dell&#8217;avvio del sistema.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> L&#8217;esame LPIC-1 pu\u00f2 presentare domande sia sui runlevel di SysVinit sia sui target di systemd. \u00c8 importante conoscere entrambi i metodi, anche se oggi quasi tutte le distribuzioni utilizzano systemd.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Impostare il runlevel predefinito con SysVinit<\/h3>\n<p>Nei sistemi basati su <strong>SysVinit<\/strong>, il runlevel predefinito viene definito nel file:<\/p>\n<pre><code>\/etc\/inittab<\/code><\/pre>\n<p>All&#8217;interno del file \u00e8 presente una riga simile alla seguente:<\/p>\n<pre><code>id:3:initdefault:<\/code><\/pre>\n<p>Il numero centrale rappresenta il runlevel che verr\u00e0 utilizzato automaticamente all&#8217;avvio del sistema.<\/p>\n<p>Ad esempio:<\/p>\n<ul>\n<li><strong>3<\/strong> \u2192 modalit\u00e0 multiutente senza interfaccia grafica;<\/li>\n<li><strong>5<\/strong> \u2192 modalit\u00e0 multiutente con interfaccia grafica.<\/li>\n<\/ul>\n<p>Per modificare il runlevel predefinito \u00e8 sufficiente sostituire il valore numerico e salvare il file.<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> Il file <code>\/etc\/inittab<\/code> viene utilizzato esclusivamente dai sistemi basati su <strong>SysVinit<\/strong>. Nelle distribuzioni moderne che utilizzano systemd questo file \u00e8 generalmente assente.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>I target di systemd<\/h3>\n<p>Con l&#8217;introduzione di <strong>systemd<\/strong>, i runlevel sono stati sostituiti dai <strong>target<\/strong>.<\/p>\n<p>Un target rappresenta uno stato operativo del sistema e definisce quali servizi devono essere avviati.<\/p>\n<p>I target pi\u00f9 comuni sono:<\/p>\n<table>\n<thead>\n<tr>\n<th>Target<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>multi-user.target<\/code><\/td>\n<td>Modalit\u00e0 multiutente senza interfaccia grafica.<\/td>\n<\/tr>\n<tr>\n<td><code>graphical.target<\/code><\/td>\n<td>Modalit\u00e0 multiutente con interfaccia grafica.<\/td>\n<\/tr>\n<tr>\n<td><code>rescue.target<\/code><\/td>\n<td>Modalit\u00e0 di ripristino con servizi essenziali.<\/td>\n<\/tr>\n<tr>\n<td><code>emergency.target<\/code><\/td>\n<td>Modalit\u00e0 di emergenza con il minimo indispensabile di servizi.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3>Visualizzare il target predefinito<\/h3>\n<p>Per conoscere il target configurato come predefinito \u00e8 possibile utilizzare il comando:<\/p>\n<pre><code>systemctl get-default<\/code><\/pre>\n<p>L&#8217;output sar\u00e0 simile al seguente:<\/p>\n<pre><code>graphical.target<\/code><\/pre>\n<p>oppure:<\/p>\n<pre><code>multi-user.target<\/code><\/pre>\n<hr \/>\n<h3>Modificare il target predefinito<\/h3>\n<p>Per cambiare il target utilizzato all&#8217;avvio del sistema si utilizza il comando:<\/p>\n<pre><code>sudo systemctl set-default multi-user.target<\/code><\/pre>\n<p>In questo esempio il sistema verr\u00e0 avviato automaticamente in modalit\u00e0 multiutente senza interfaccia grafica.<\/p>\n<p>Per ripristinare l&#8217;avvio grafico \u00e8 possibile eseguire:<\/p>\n<pre><code>sudo systemctl set-default graphical.target<\/code><\/pre>\n<p>La modifica sar\u00e0 applicata al successivo riavvio del sistema.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Il comando <code>systemctl set-default<\/code> modifica il <strong>target di avvio predefinito<\/strong>, ma non cambia immediatamente lo stato operativo del sistema.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Runlevel e target: corrispondenza<\/h3>\n<p>Per facilitare la migrazione da SysVinit a systemd, i principali runlevel sono associati ai corrispondenti target.<\/p>\n<table>\n<thead>\n<tr>\n<th>Runlevel (SysVinit)<\/th>\n<th>Target (systemd)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>0<\/td>\n<td><code>poweroff.target<\/code><\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td><code>rescue.target<\/code><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><code>multi-user.target<\/code><\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td><code>graphical.target<\/code><\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td><code>reboot.target<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Questa corrispondenza consente agli amministratori di sistema di orientarsi facilmente tra il modello tradizionale basato sui runlevel e quello moderno introdotto da systemd.<\/p>\n<blockquote>\n<p><strong>\u26a0\ufe0f Errore comune<\/strong> Il comando <code>systemctl set-default<\/code> modifica solamente il target utilizzato al prossimo avvio. Per cambiare immediatamente il target corrente \u00e8 necessario utilizzare <code>systemctl isolate<\/code>, che verr\u00e0 approfondito nella prossima sezione.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Quando amministri sistemi Linux moderni utilizza sempre i target di <strong>systemd<\/strong>. Tuttavia, \u00e8 consigliabile conoscere anche il funzionamento dei runlevel e del file <code>\/etc\/inittab<\/code>, poich\u00e9 possono essere ancora presenti in sistemi legacy e sono argomenti frequentemente richiesti nell&#8217;esame LPIC-1.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li>Nei sistemi SysVinit il runlevel predefinito veniva definito nel file <code>\/etc\/inittab<\/code>.<\/li>\n<li>Systemd sostituisce i runlevel con i target.<\/li>\n<li>Il comando <code>systemctl get-default<\/code> visualizza il target predefinito.<\/li>\n<li>Il comando <code>systemctl set-default<\/code> imposta il target utilizzato ai successivi avvii del sistema.<\/li>\n<li>I target <code>multi-user.target<\/code> e <code>graphical.target<\/code> sono i pi\u00f9 utilizzati nelle distribuzioni Linux moderne.<\/li>\n<\/ul>\n<h2>101.3.3 Cambiare runlevel e target di avvio<\/h2>\n<p>In alcune situazioni un amministratore di sistema pu\u00f2 avere la necessit\u00e0 di modificare lo stato operativo del sistema <strong>senza riavviare il computer<\/strong>. Ad esempio, pu\u00f2 essere necessario passare dalla modalit\u00e0 grafica a quella testuale per eseguire attivit\u00e0 di manutenzione oppure avviare temporaneamente una modalit\u00e0 di ripristino.<\/p>\n<p>Le modalit\u00e0 di cambio dipendono dal sistema di inizializzazione utilizzato:<\/p>\n<ul>\n<li><strong>SysVinit<\/strong> utilizza il comando <code>telinit<\/code> per cambiare runlevel.<\/li>\n<li><strong>systemd<\/strong> utilizza il comando <code>systemctl isolate<\/code> per attivare un diverso target.<\/li>\n<\/ul>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Non confondere <code>systemctl isolate<\/code> con <code>systemctl set-default<\/code>. Il primo modifica il target <strong>corrente<\/strong>, mentre il secondo modifica il target utilizzato al <strong>prossimo avvio<\/strong>.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Cambiare runlevel con SysVinit<\/h3>\n<p>Nei sistemi basati su <strong>SysVinit<\/strong>, il comando utilizzato per cambiare runlevel \u00e8:<\/p>\n<pre><code>telinit<\/code><\/pre>\n<p>Ad esempio, per passare al runlevel 3:<\/p>\n<pre><code>sudo telinit 3<\/code><\/pre>\n<p>Il sistema terminer\u00e0 i servizi non necessari per il nuovo runlevel e avvier\u00e0 quelli richiesti.<\/p>\n<p>\u00c8 possibile utilizzare anche altri runlevel:<\/p>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>telinit 1<\/code><\/td>\n<td>Passa alla modalit\u00e0 utente singolo.<\/td>\n<\/tr>\n<tr>\n<td><code>telinit 3<\/code><\/td>\n<td>Passa alla modalit\u00e0 multiutente testuale.<\/td>\n<\/tr>\n<tr>\n<td><code>telinit 5<\/code><\/td>\n<td>Passa alla modalit\u00e0 grafica (nelle distribuzioni che la utilizzano).<\/td>\n<\/tr>\n<tr>\n<td><code>telinit 6<\/code><\/td>\n<td>Riavvia il sistema.<\/td>\n<\/tr>\n<tr>\n<td><code>telinit 0<\/code><\/td>\n<td>Arresta il sistema.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3>Cambiare target con systemd<\/h3>\n<p>Nei sistemi Linux moderni, il cambio dello stato operativo avviene tramite il comando:<\/p>\n<pre><code>systemctl isolate<\/code><\/pre>\n<p>Questo comando arresta i servizi non appartenenti al nuovo target e avvia quelli necessari.<\/p>\n<p>Ad esempio, per passare alla modalit\u00e0 grafica:<\/p>\n<pre><code>sudo systemctl isolate graphical.target<\/code><\/pre>\n<p>Per passare invece alla modalit\u00e0 multiutente senza interfaccia grafica:<\/p>\n<pre><code>sudo systemctl isolate multi-user.target<\/code><\/pre>\n<p>Il cambio di target avviene immediatamente e non richiede il riavvio del sistema.<\/p>\n<hr \/>\n<h3>I target pi\u00f9 utilizzati<\/h3>\n<table>\n<thead>\n<tr>\n<th>Target<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>multi-user.target<\/code><\/td>\n<td>Modalit\u00e0 multiutente senza interfaccia grafica.<\/td>\n<\/tr>\n<tr>\n<td><code>graphical.target<\/code><\/td>\n<td>Modalit\u00e0 multiutente con interfaccia grafica.<\/td>\n<\/tr>\n<tr>\n<td><code>rescue.target<\/code><\/td>\n<td>Modalit\u00e0 di ripristino con servizi essenziali.<\/td>\n<\/tr>\n<tr>\n<td><code>emergency.target<\/code><\/td>\n<td>Modalit\u00e0 di emergenza con il minimo indispensabile di servizi.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3>Quando utilizzare <code>isolate<\/code>?<\/h3>\n<p>Il comando <code>systemctl isolate<\/code> \u00e8 particolarmente utile quando \u00e8 necessario modificare temporaneamente lo stato operativo del sistema senza riavviarlo.<\/p>\n<p>Ad esempio pu\u00f2 essere utilizzato per:<\/p>\n<ul>\n<li>passare dalla modalit\u00e0 grafica a quella testuale;<\/li>\n<li>eseguire operazioni di manutenzione;<\/li>\n<li>risolvere problemi relativi all&#8217;ambiente grafico;<\/li>\n<li>accedere rapidamente alla modalit\u00e0 di ripristino.<\/li>\n<\/ul>\n<p>Una volta completate le operazioni, \u00e8 possibile ritornare al target grafico eseguendo nuovamente il comando appropriato.<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> <code>systemctl isolate<\/code> modifica esclusivamente il target attivo nella sessione corrente. Al successivo riavvio il sistema utilizzer\u00e0 il target predefinito configurato con <code>systemctl set-default<\/code>.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Confronto tra i principali comandi<\/h3>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Effetto<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>telinit 3<\/code><\/td>\n<td>Cambia immediatamente il runlevel (SysVinit).<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl isolate multi-user.target<\/code><\/td>\n<td>Cambia immediatamente il target corrente (systemd).<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl set-default multi-user.target<\/code><\/td>\n<td>Imposta il target utilizzato ai successivi avvii del sistema.<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl get-default<\/code><\/td>\n<td>Visualizza il target di avvio predefinito.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p><strong>\u26a0\ufe0f Errore comune<\/strong> Molti utenti pensano che <code>systemctl isolate<\/code> renda permanente la modifica del target. In realt\u00e0 il comando ha effetto solo sulla sessione corrente. Per modificare il target utilizzato ai successivi riavvii \u00e8 necessario utilizzare <code>systemctl set-default<\/code>.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Quando amministri un sistema Linux moderno, utilizza <code>systemctl isolate<\/code> solo se necessario e assicurati di comprendere quali servizi verranno arrestati o avviati. Prima di modificare il target predefinito verifica sempre quello attualmente configurato mediante <code>systemctl get-default<\/code>.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li>Nei sistemi SysVinit il comando <code>telinit<\/code> permette di cambiare runlevel.<\/li>\n<li>Nei sistemi moderni <code>systemctl isolate<\/code> cambia immediatamente il target corrente.<\/li>\n<li><code>systemctl isolate<\/code> non modifica il target di avvio predefinito.<\/li>\n<li><code>systemctl set-default<\/code> imposta il target utilizzato ai successivi riavvii del sistema.<\/li>\n<li>I target <code>multi-user.target<\/code> e <code>graphical.target<\/code> sono quelli utilizzati pi\u00f9 frequentemente.<\/li>\n<\/ul>\n<h2>101.3.4 Arrestare, riavviare e gestire il sistema dalla riga di comando<\/h2>\n<p>Un amministratore Linux deve essere in grado di arrestare, riavviare o modificare lo stato operativo del sistema in modo sicuro. Queste operazioni possono essere eseguite direttamente dalla riga di comando utilizzando strumenti differenti a seconda del sistema di inizializzazione impiegato.<\/p>\n<p>Nei sistemi basati su <strong>SysVinit<\/strong> vengono utilizzati principalmente i comandi <code>shutdown<\/code> e <code>telinit<\/code>, mentre nelle distribuzioni moderne che adottano <strong>systemd<\/strong> si utilizzano i comandi <code>systemctl<\/code>.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 importante conoscere sia i comandi tradizionali (<code>shutdown<\/code>, <code>halt<\/code>, <code>reboot<\/code>) sia i corrispondenti comandi di <strong>systemd<\/strong>.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Arrestare il sistema (Shutdown)<\/h3>\n<p>L&#8217;arresto del sistema consente di chiudere ordinatamente tutti i processi, smontare i filesystem e spegnere il computer in sicurezza.<\/p>\n<p>Nei sistemi SysVinit si utilizza generalmente:<\/p>\n<pre><code>sudo shutdown -h now<\/code><\/pre>\n<p>dove:<\/p>\n<ul>\n<li><code>-h<\/code> indica di arrestare il sistema (<em>halt<\/em>);<\/li>\n<li><code>now<\/code> indica che l&#8217;operazione deve essere eseguita immediatamente.<\/li>\n<\/ul>\n<p>Con systemd il comando equivalente \u00e8:<\/p>\n<pre><code>sudo systemctl poweroff<\/code><\/pre>\n<p>Entrambi i comandi terminano i servizi in esecuzione e spengono il sistema in modo controllato.<\/p>\n<hr \/>\n<h3>Riavviare il sistema (Reboot)<\/h3>\n<p>Per riavviare il computer \u00e8 possibile utilizzare:<\/p>\n<pre><code>sudo shutdown -r now<\/code><\/pre>\n<p>L&#8217;opzione <code>-r<\/code> indica che, dopo l&#8217;arresto dei servizi, il sistema dovr\u00e0 essere riavviato.<\/p>\n<p>Nei sistemi moderni con systemd il comando equivalente \u00e8:<\/p>\n<pre><code>sudo systemctl reboot<\/code><\/pre>\n<hr \/>\n<h3>Modalit\u00e0 utente singolo (Single-user mode)<\/h3>\n<p>La <strong>modalit\u00e0 utente singolo<\/strong> \u00e8 una modalit\u00e0 speciale utilizzata principalmente per:<\/p>\n<ul>\n<li>attivit\u00e0 di manutenzione;<\/li>\n<li>ripristino del sistema;<\/li>\n<li>correzione di errori nei filesystem;<\/li>\n<li>modifica di configurazioni critiche.<\/li>\n<\/ul>\n<p>In questa modalit\u00e0 vengono avviati solamente i servizi essenziali e normalmente \u00e8 disponibile un unico utente con privilegi amministrativi.<\/p>\n<p>Nei sistemi SysVinit \u00e8 possibile accedervi con:<\/p>\n<pre><code>sudo telinit 1<\/code><\/pre>\n<p>Con systemd il comando equivalente \u00e8:<\/p>\n<pre><code>sudo systemctl isolate rescue.target<\/code><\/pre>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> La modalit\u00e0 <strong>rescue.target<\/strong> rappresenta l&#8217;equivalente moderno del tradizionale <strong>runlevel 1<\/strong>.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Confronto dei principali comandi<\/h3>\n<table>\n<thead>\n<tr>\n<th>Operazione<\/th>\n<th>SysVinit<\/th>\n<th>systemd<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Spegnere il sistema<\/td>\n<td><code>shutdown -h now<\/code><\/td>\n<td><code>systemctl poweroff<\/code><\/td>\n<\/tr>\n<tr>\n<td>Riavviare il sistema<\/td>\n<td><code>shutdown -r now<\/code><\/td>\n<td><code>systemctl reboot<\/code><\/td>\n<\/tr>\n<tr>\n<td>Modalit\u00e0 utente singolo<\/td>\n<td><code>telinit 1<\/code><\/td>\n<td><code>systemctl isolate rescue.target<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3>Altri comandi utili<\/h3>\n<p>Linux mette a disposizione anche altri comandi per la gestione dello stato del sistema:<\/p>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>poweroff<\/code><\/td>\n<td>Arresta e spegne il sistema.<\/td>\n<\/tr>\n<tr>\n<td><code>halt<\/code><\/td>\n<td>Ferma il sistema. Nei sistemi moderni equivale generalmente a <code>poweroff<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>reboot<\/code><\/td>\n<td>Riavvia il sistema.<\/td>\n<\/tr>\n<tr>\n<td><code>shutdown +10<\/code><\/td>\n<td>Pianifica lo spegnimento tra 10 minuti.<\/td>\n<\/tr>\n<tr>\n<td><code>shutdown -c<\/code><\/td>\n<td>Annulla uno spegnimento pianificato.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p><strong>\u26a0\ufe0f Errore comune<\/strong> Evita di spegnere il computer interrompendo direttamente l&#8217;alimentazione. Utilizza sempre i comandi di arresto del sistema, che consentono di terminare correttamente i processi e smontare i filesystem, riducendo il rischio di perdita o corruzione dei dati.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Prima di arrestare o riavviare un server di produzione verifica sempre che non siano presenti utenti connessi o processi critici in esecuzione. Quando possibile, utilizza il comando <code>shutdown<\/code> per pianificare lo spegnimento e avvisare gli utenti connessi.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li><code>shutdown -h now<\/code> e <code>systemctl poweroff<\/code> arrestano il sistema.<\/li>\n<li><code>shutdown -r now<\/code> e <code>systemctl reboot<\/code> riavviano il sistema.<\/li>\n<li><code>telinit 1<\/code> e <code>systemctl isolate rescue.target<\/code> consentono di accedere alla modalit\u00e0 di manutenzione.<\/li>\n<li>I comandi di arresto terminano i servizi e smontano correttamente i filesystem prima dello spegnimento.<\/li>\n<\/ul>\n<h2>101.3.5 Avvisare gli utenti connessi<\/h2>\n<p>In un ambiente multiutente \u00e8 buona norma informare gli utenti prima di eseguire operazioni che potrebbero interrompere il loro lavoro, come un riavvio del sistema, uno spegnimento o un intervento di manutenzione.<\/p>\n<p>Linux mette a disposizione il comando <code>wall<\/code> (<strong>write all<\/strong>), che consente di inviare un messaggio contemporaneamente a tutti gli utenti attualmente connessi tramite terminale.<\/p>\n<p>Questo comando \u00e8 particolarmente utile negli ambienti server, dove pi\u00f9 utenti possono essere collegati contemporaneamente tramite console locale o connessioni SSH.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Il comando <code>wall<\/code> invia un messaggio a <strong>tutti gli utenti connessi<\/strong>. Non deve essere confuso con <code>write<\/code>, che invia un messaggio a un singolo utente.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Utilizzare il comando wall<\/h3>\n<p>La sintassi del comando \u00e8 molto semplice:<\/p>\n<pre><code>wall \"messaggio\"<\/code><\/pre>\n<p>Ad esempio:<\/p>\n<pre><code>wall \"Il sistema verr\u00e0 riavviato tra 10 minuti per manutenzione. Salvare il proprio lavoro.\"<\/code><\/pre>\n<p>Tutti gli utenti collegati riceveranno immediatamente il messaggio sul proprio terminale.<\/p>\n<hr \/>\n<h3>Quando utilizzare wall<\/h3>\n<p>Il comando <code>wall<\/code> viene comunemente utilizzato prima di:<\/p>\n<ul>\n<li>uno spegnimento programmato del sistema;<\/li>\n<li>un riavvio per installare aggiornamenti;<\/li>\n<li>interventi di manutenzione;<\/li>\n<li>operazioni amministrative che potrebbero interrompere le sessioni degli utenti.<\/li>\n<\/ul>\n<p>Un amministratore potrebbe, ad esempio, avvisare gli utenti alcuni minuti prima di riavviare un server:<\/p>\n<pre><code>wall \"Attenzione: il server sar\u00e0 riavviato tra 10 minuti per manutenzione programmata.\"<\/code><\/pre>\n<hr \/>\n<h3>wall e shutdown<\/h3>\n<p>Quando si utilizza il comando <code>shutdown<\/code> per pianificare uno spegnimento o un riavvio, Linux invia automaticamente un messaggio di avviso agli utenti connessi.<\/p>\n<p>Ad esempio:<\/p>\n<pre><code>shutdown -r +10<\/code><\/pre>\n<p>programma il riavvio del sistema tra dieci minuti e notifica automaticamente gli utenti collegati.<\/p>\n<p>Il comando <code>wall<\/code> rimane comunque utile quando si desidera inviare comunicazioni personalizzate oppure informare gli utenti senza pianificare uno spegnimento.<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> <code>shutdown<\/code> pu\u00f2 inviare automaticamente notifiche agli utenti, mentre <code>wall<\/code> permette di inviare qualsiasi messaggio in qualunque momento.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Confronto tra wall e write<\/h3>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>wall<\/code><\/td>\n<td>Invia un messaggio a tutti gli utenti connessi.<\/td>\n<\/tr>\n<tr>\n<td><code>write<\/code><\/td>\n<td>Invia un messaggio a un singolo utente.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p><strong>\u26a0\ufe0f Errore comune<\/strong> Molti utenti credono che <code>wall<\/code> invii messaggi tramite email. In realt\u00e0 il comando scrive direttamente sui terminali degli utenti attualmente connessi al sistema.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Prima di arrestare o riavviare un server condiviso, informa sempre gli utenti con un messaggio chiaro utilizzando <code>wall<\/code> oppure pianificando lo spegnimento con <code>shutdown<\/code>. Questo riduce il rischio di perdita di dati e permette agli utenti di salvare il proprio lavoro.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li>Il comando <code>wall<\/code> invia un messaggio a tutti gli utenti connessi.<\/li>\n<li>\u00c8 particolarmente utile prima di operazioni di manutenzione, spegnimento o riavvio del sistema.<\/li>\n<li><code>shutdown<\/code> pu\u00f2 notificare automaticamente gli utenti durante uno spegnimento pianificato.<\/li>\n<li>Il comando <code>write<\/code>, invece, permette di inviare un messaggio a un solo utente.<\/li>\n<\/ul>\n<h2>101.3.6 Terminare correttamente i processi<\/h2>\n<p>Durante l&#8217;amministrazione di un sistema Linux pu\u00f2 essere necessario interrompere un processo che non risponde oppure arrestare un&#8217;applicazione prima di eseguire operazioni di manutenzione.<\/p>\n<p>Linux mette a disposizione diversi segnali per terminare un processo. Tuttavia, non tutti i segnali hanno lo stesso comportamento ed \u00e8 importante utilizzare quello pi\u00f9 appropriato per evitare la perdita di dati o la corruzione di file.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> Quando possibile utilizza sempre il segnale <strong>TERM (15)<\/strong>, che consente al processo di terminare in modo ordinato. Il segnale <strong>KILL (9)<\/strong> dovrebbe essere utilizzato solo come ultima risorsa.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Terminazione &#8220;graceful&#8221; di un processo<\/h3>\n<p>Il comando pi\u00f9 comune per terminare un processo \u00e8:<\/p>\n<pre><code>kill PID<\/code><\/pre>\n<p>oppure:<\/p>\n<pre><code>kill -15 PID<\/code><\/pre>\n<p>Se non viene specificato alcun segnale, <code>kill<\/code> invia automaticamente il segnale <strong>SIGTERM (15)<\/strong>.<\/p>\n<p>Questo segnale non forza l&#8217;interruzione immediata del processo, ma gli richiede di terminare correttamente.<\/p>\n<p>Il programma pu\u00f2 quindi:<\/p>\n<ul>\n<li>salvare eventuali dati ancora in memoria;<\/li>\n<li>chiudere i file aperti;<\/li>\n<li>rilasciare le risorse utilizzate;<\/li>\n<li>terminare in modo ordinato.<\/li>\n<\/ul>\n<p>Per questo motivo <strong>SIGTERM<\/strong> rappresenta sempre la scelta consigliata.<\/p>\n<hr \/>\n<h3>Forzare la terminazione di un processo<\/h3>\n<p>Se un processo non risponde al segnale TERM, \u00e8 possibile utilizzare:<\/p>\n<pre><code>kill -9 PID<\/code><\/pre>\n<p>Il parametro <code>-9<\/code> invia il segnale <strong>SIGKILL<\/strong>, che interrompe immediatamente il processo.<\/p>\n<p>A differenza di SIGTERM, il processo:<\/p>\n<ul>\n<li>non pu\u00f2 intercettare il segnale;<\/li>\n<li>non pu\u00f2 eseguire operazioni di pulizia;<\/li>\n<li>viene terminato immediatamente dal kernel.<\/li>\n<\/ul>\n<p>Questo pu\u00f2 comportare la perdita di dati non ancora salvati o lasciare file temporanei e risorse non rilasciate.<\/p>\n<blockquote>\n<p><strong>\u26a0\ufe0f Errore comune<\/strong> Molti amministratori utilizzano immediatamente <code>kill -9<\/code>. In realt\u00e0 \u00e8 buona pratica tentare prima una terminazione ordinata con <code>kill<\/code> (SIGTERM) e ricorrere a <code>SIGKILL<\/code> solo se il processo continua a non rispondere.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>I principali segnali<\/h3>\n<table>\n<thead>\n<tr>\n<th>Segnale<\/th>\n<th>Numero<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>SIGTERM<\/strong><\/td>\n<td>15<\/td>\n<td>Richiede al processo di terminare in modo ordinato.<\/td>\n<\/tr>\n<tr>\n<td><strong>SIGKILL<\/strong><\/td>\n<td>9<\/td>\n<td>Forza la terminazione immediata del processo.<\/td>\n<\/tr>\n<tr>\n<td><strong>SIGHUP<\/strong><\/td>\n<td>1<\/td>\n<td>Comunemente utilizzato per richiedere il ricaricamento della configurazione di un servizio.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> Il comando <code>kill<\/code> non &#8220;uccide&#8221; necessariamente un processo. Invia semplicemente un <strong>segnale<\/strong>; sar\u00e0 il processo stesso (quando possibile) a decidere come gestirlo.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Esempio pratico<\/h3>\n<p>Supponiamo che un processo con PID <code>3245<\/code> non risponda.<\/p>\n<p>Per tentare una chiusura ordinata:<\/p>\n<pre><code>kill 3245<\/code><\/pre>\n<p>Se il processo continua a rimanere attivo, come ultima soluzione:<\/p>\n<pre><code>kill -9 3245<\/code><\/pre>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Quando \u00e8 necessario interrompere un processo, segui questo ordine:<\/p>\n<ol>\n<li>identifica il PID del processo;<\/li>\n<li>invia il segnale <strong>SIGTERM<\/strong> utilizzando <code>kill PID<\/code>;<\/li>\n<li>attendi alcuni secondi verificando se il processo termina;<\/li>\n<li>solo se il processo continua a non rispondere utilizza <code>kill -9 PID<\/code>.<\/li>\n<\/ol>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li><code>kill PID<\/code> invia il segnale <strong>SIGTERM (15)<\/strong>.<\/li>\n<li>SIGTERM permette al processo di terminare correttamente.<\/li>\n<li><code>kill -9 PID<\/code> invia <strong>SIGKILL (9)<\/strong>, che forza la terminazione immediata.<\/li>\n<li>SIGKILL dovrebbe essere utilizzato solo come ultima risorsa.<\/li>\n<li>Il comando <code>kill<\/code> invia segnali ai processi e non li termina necessariamente in modo diretto.<\/li>\n<\/ul>\n<h2>101.3.7 Il demone acpid<\/h2>\n<p>Nei sistemi Linux, molti eventi hardware legati alla gestione dell&#8217;alimentazione vengono gestiti dal demone <strong>acpid<\/strong> (<strong>Advanced Configuration and Power Interface daemon<\/strong>).<\/p>\n<p>Il suo compito \u00e8 ascoltare gli eventi generati dall&#8217;interfaccia <strong>ACPI (Advanced Configuration and Power Interface)<\/strong> e avviare automaticamente le azioni configurate dall&#8217;amministratore di sistema.<\/p>\n<p>Tra gli eventi pi\u00f9 comuni gestiti da <strong>acpid<\/strong> troviamo:<\/p>\n<ul>\n<li>pressione del pulsante di accensione;<\/li>\n<li>pressione del pulsante di sospensione;<\/li>\n<li>chiusura del coperchio di un computer portatile;<\/li>\n<li>collegamento o scollegamento dell&#8217;alimentatore;<\/li>\n<li>eventi relativi alla gestione energetica del sistema.<\/li>\n<\/ul>\n<blockquote>\n<p><strong>\ud83d\udca1 Exam Tip<\/strong> <strong>acpid<\/strong> \u00e8 un demone che intercetta gli eventi ACPI e avvia automaticamente le azioni associate. Non gestisce direttamente l&#8217;alimentazione del sistema, ma reagisce agli eventi hardware notificati dal kernel.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Come funziona acpid<\/h3>\n<p>Quando si verifica un evento ACPI, il kernel Linux lo segnala al demone <strong>acpid<\/strong>.<\/p>\n<p>Quest&#8217;ultimo consulta i file di configurazione e gli script associati all&#8217;evento per determinare quale operazione eseguire.<\/p>\n<p>Ad esempio, alla chiusura del coperchio di un notebook pu\u00f2 essere configurato per:<\/p>\n<ul>\n<li>sospendere il sistema;<\/li>\n<li>ibernare il computer;<\/li>\n<li>spegnere lo schermo;<\/li>\n<li>non eseguire alcuna operazione.<\/li>\n<\/ul>\n<p>Il comportamento dipende dalla configurazione del sistema e dalla distribuzione Linux utilizzata.<\/p>\n<hr \/>\n<h3>Configurazione<\/h3>\n<p>Nei sistemi che utilizzano <strong>acpid<\/strong>, i file di configurazione sono generalmente presenti nella directory:<\/p>\n<pre><code>\/etc\/acpi\/<\/code><\/pre>\n<p>Gli script contenuti in questa directory definiscono le azioni da eseguire quando viene rilevato uno specifico evento ACPI.<\/p>\n<p>Nelle distribuzioni Linux moderne, alcune funzionalit\u00e0 tradizionalmente gestite da <strong>acpid<\/strong> possono essere integrate direttamente in <strong>systemd-logind<\/strong> o nell&#8217;ambiente desktop, riducendo la necessit\u00e0 di utilizzare il demone dedicato.<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc Da ricordare<\/strong> Anche se molti sistemi moderni utilizzano <strong>systemd-logind<\/strong> per la gestione degli eventi ACPI, <strong>acpid<\/strong> continua a essere presente in numerose distribuzioni e rappresenta un argomento richiesto dall&#8217;esame LPIC-1.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Esempi di eventi gestiti<\/h3>\n<table>\n<thead>\n<tr>\n<th>Evento<\/th>\n<th>Azione tipica<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Pressione del pulsante di accensione<\/td>\n<td>Avvio della procedura di spegnimento.<\/td>\n<\/tr>\n<tr>\n<td>Chiusura del coperchio del notebook<\/td>\n<td>Sospensione o ibernazione del sistema.<\/td>\n<\/tr>\n<tr>\n<td>Pressione del pulsante Sleep<\/td>\n<td>Sospensione del computer.<\/td>\n<\/tr>\n<tr>\n<td>Collegamento dell&#8217;alimentatore<\/td>\n<td>Notifica o modifica del profilo energetico.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p><strong>\u26a0\ufe0f Errore comune<\/strong> Molti utenti credono che <strong>acpid<\/strong> gestisca direttamente lo spegnimento del sistema. In realt\u00e0 il demone si limita a intercettare gli eventi ACPI ed eseguire gli script configurati.<\/p>\n<\/blockquote>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Quando amministri server Linux, verifica quali eventi ACPI sono realmente necessari. Nei server rack, ad esempio, la gestione della chiusura del coperchio non ha alcun significato, mentre pu\u00f2 essere utile controllare il comportamento del pulsante di accensione per evitare spegnimenti accidentali.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li><strong>acpid<\/strong> \u00e8 il demone che gestisce gli eventi ACPI.<\/li>\n<li>Intercetta eventi hardware come la pressione del pulsante di accensione o la chiusura del coperchio di un notebook.<\/li>\n<li>Esegue automaticamente gli script associati agli eventi rilevati.<\/li>\n<li>Nei sistemi moderni alcune funzionalit\u00e0 possono essere gestite direttamente da <strong>systemd-logind<\/strong>.<\/li>\n<\/ul>\n<h2>\ud83d\udcda Riepilogo della lezione<\/h2>\n<p>In questa lezione hai approfondito il funzionamento dei diversi stati operativi di un sistema Linux, comprendendo il ruolo dei runlevel tradizionali e dei moderni target di systemd. Hai imparato a configurare il target di avvio predefinito, a modificare lo stato operativo del sistema senza riavviarlo e a utilizzare i principali comandi per arrestare, riavviare e amministrare il sistema in sicurezza.<\/p>\n<p>Hai inoltre scoperto come notificare gli utenti connessi prima di un intervento di manutenzione, come terminare correttamente i processi e quale ruolo svolge il demone <strong>acpid<\/strong> nella gestione degli eventi ACPI.<\/p>\n<h3>Concetti principali<\/h3>\n<ul>\n<li>Hai compreso il significato dei <strong>runlevel<\/strong> nei sistemi basati su SysVinit.<\/li>\n<li>Hai imparato che <strong>systemd<\/strong> sostituisce i runlevel con i <strong>target<\/strong>.<\/li>\n<li>Hai imparato a visualizzare e modificare il target di avvio predefinito utilizzando <code>systemctl get-default<\/code> e <code>systemctl set-default<\/code>.<\/li>\n<li>Hai compreso la differenza tra la modifica permanente del target e il cambio temporaneo mediante <code>systemctl isolate<\/code>.<\/li>\n<li>Hai utilizzato i principali comandi per arrestare, spegnere e riavviare un sistema Linux.<\/li>\n<li>Hai imparato a utilizzare il comando <code>wall<\/code> per inviare messaggi a tutti gli utenti connessi.<\/li>\n<li>Hai compreso l&#8217;importanza di terminare i processi in modo ordinato utilizzando <code>kill<\/code> prima di ricorrere a <code>kill -9<\/code>.<\/li>\n<li>Hai conosciuto il ruolo del demone <strong>acpid<\/strong> nella gestione degli eventi ACPI.<\/li>\n<\/ul>\n<blockquote>\n<p><strong>\ud83c\udfaf Obiettivo raggiunto<\/strong> Al termine di questa lezione sei in grado di gestire i principali stati operativi di un sistema Linux, amministrare correttamente l&#8217;avvio e l&#8217;arresto del sistema, modificare i target di systemd e utilizzare gli strumenti fondamentali per la gestione di processi e utenti durante le operazioni di manutenzione.<\/p>\n<\/blockquote>\n<h3>Comandi da ricordare<\/h3>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>systemctl get-default<\/code><\/td>\n<td>Visualizza il target di avvio predefinito.<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl set-default target<\/code><\/td>\n<td>Imposta il target utilizzato ai successivi avvii.<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl isolate target<\/code><\/td>\n<td>Passa immediatamente a un diverso target.<\/td>\n<\/tr>\n<tr>\n<td><code>shutdown -h now<\/code><\/td>\n<td>Arresta e spegne il sistema.<\/td>\n<\/tr>\n<tr>\n<td><code>shutdown -r now<\/code><\/td>\n<td>Riavvia immediatamente il sistema.<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl poweroff<\/code><\/td>\n<td>Spegne il sistema utilizzando systemd.<\/td>\n<\/tr>\n<tr>\n<td><code>systemctl reboot<\/code><\/td>\n<td>Riavvia il sistema utilizzando systemd.<\/td>\n<\/tr>\n<tr>\n<td><code>telinit 1<\/code><\/td>\n<td>Passa al runlevel 1 nei sistemi SysVinit.<\/td>\n<\/tr>\n<tr>\n<td><code>wall<\/code><\/td>\n<td>Invia un messaggio a tutti gli utenti connessi.<\/td>\n<\/tr>\n<tr>\n<td><code>kill PID<\/code><\/td>\n<td>Invia il segnale SIGTERM per terminare correttamente un processo.<\/td>\n<\/tr>\n<tr>\n<td><code>kill -9 PID<\/code><\/td>\n<td>Forza la terminazione immediata di un processo (SIGKILL).<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p><strong>\ud83d\udca1 Preparazione all&#8217;esame LPIC-1<\/strong> Prima di proseguire assicurati di conoscere la differenza tra <strong>runlevel<\/strong> e <strong>target<\/strong>, di saper distinguere i comandi <code>systemctl isolate<\/code> e <code>systemctl set-default<\/code> e di sapere quando utilizzare <code>shutdown<\/code>, <code>reboot<\/code>, <code>wall<\/code> e <code>kill<\/code>. Questi argomenti sono frequentemente presenti nelle domande della certificazione LPIC-1 Exam 101.<\/p>\n<\/blockquote>\n<hr \/>\n<p>\u00a0<\/p>\n","protected":false},"comment_status":"open","ping_status":"closed","template":"","class_list":["post-3619","lesson","type-lesson","status-publish","has-post-thumbnail","hentry"],"uagb_featured_image_src":[],"uagb_author_info":{"display_name":"Rootmail Academy","author_link":"https:\/\/rootmail.it\/en\/author\/"},"uagb_comment_info":0,"uagb_excerpt":"101.3 Cambiare i runlevel, i target di avvio e arrestare o riavviare il sistema Dopo aver compreso il processo di avvio di Linux, \u00e8 importante conoscere come il sistema gestisce i diversi stati operativi e come amministrare correttamente le operazioni di avvio, arresto e riavvio. Nelle distribuzioni Linux moderne il tradizionale concetto di runlevel, introdotto&hellip;","_links":{"self":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/lesson\/3619","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/lesson"}],"about":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/types\/lesson"}],"replies":[{"embeddable":true,"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/comments?post=3619"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/media\/3666"}],"wp:attachment":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/media?parent=3619"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}