Linux: Come disconnettersi, riavviare e spegnere

Per terminare la shell corrente in Linux, puoi usare exit; per riavviare il sistema, usa sudo systemctl reboot; e per spegnere, usa sudo systemctl poweroff. Disconnettersi riguarda solo la sessione corrente, mentre riavviare e spegnere influenzano anche altri utenti e servizi sul server.

Verifica prima dell'esecuzione

Gli esempi di riavvio e spegnimento in questo articolo si basano su Linux utilizzando systemd. I comandi eseguiti immediatamente possono influire sul lavoro non salvato e sui servizi in esecuzione, quindi salva il tuo lavoro, informa gli altri utenti e eseguili durante le ore di manutenzione. Nei server, controlla i backup e l'impatto sui servizi.

Se sei connesso tramite SSH, i comandi vengono eseguiti sul server a cui sei connesso, non sul tuo PC. I seguenti comandi aiutano a verificare il destinatario.

hostname
date
who

hostname mostra il nome host corrente, date mostra l'orario corrente del server e il fuso orario, e who mostra un elenco degli utenti visualizzati nei record di accesso. Non è possibile identificare completamente il server solo dal nome, quindi incrocia anche con le informazioni dello strumento di gestione. I server remoti interromperanno le connessioni SSH durante il riavvio e, dopo lo spegnimento, potrebbe non esserci modo di accenderli direttamente, quindi controlla in anticipo la console o il percorso di gestione dell'alimentazione.

Esci dalla shell corrente

Per uscire dalla shell corrente, esegui il seguente comando.

exit

Quando viene eseguito nell'ultima shell di una sessione SSH, di solito chiude la connessione remota. Se ti trovi in una shell annidata, torna prima alla shell esterna. logout può essere utilizzato quando si esce da una shell di login, ma potrebbe non funzionare in una tipica shell non di login. Effettuare il logout non spegne il sistema stesso e se le attività in corso continuano dipende dalle impostazioni della sessione e delle attività.

Riavviare o spegnere immediatamente

Su un sistema con systemd, il seguente comando richiede un riavvio. I servizi iniziano a fermarsi immediatamente all'esecuzione, quindi assicurati prima che il target sia corretto.

sudo systemctl reboot

Per spegnere il sistema e interrompere l'alimentazione, usa il seguente comando.

sudo systemctl poweroff

I privilegi amministrativi possono richiedere sudo o un'autenticazione separata a seconda dell'ambiente. Lo stato di alimentazione e il metodo di riavvio delle macchine virtuali o dei server cloud possono variare in base alle politiche della piattaforma di gestione. Dopo il riavvio, riconnettiti e verifica che i servizi necessari funzionino correttamente. halt, che arresta il sistema, e poweroff, che lo spegne, non hanno lo stesso significato, quindi scegli il comando che si adatta al tuo scopo.

Pianificare e annullare riavvii o spegnimenti

Puoi pianificare un'operazione con shutdown. Il seguente comando pianifica un riavvio tra 10 minuti.

sudo shutdown -r +10

-r è riavvio, +10 è 10 minuti dall'orario attuale. Per spegnere l'alimentazione 10 minuti dopo, usa -P.

sudo shutdown -P +10

Puoi anche specificare un orario specifico con HH:MM nel formato 24 ore. Ad esempio, per programmare un riavvio alle 23:30 ora del server, esegui quanto segue.

sudo shutdown -r 23:30

Prima di eseguire, verifica l'ora del server e il fuso orario e assicurati che l'orario desiderato non sia già passato. A seconda dell'implementazione e della versione, la gestione degli orari già trascorsi può differire, e alcune versioni possono avviare lo spegnimento immediatamente. Inserire un comando programmato influisce sul sistema, quindi non eseguirlo su un server di produzione solo per test.

Per annullare uno spegnimento programmato che non è ancora iniziato, esegui il seguente comando.

sudo shutdown -c

Le cancellazioni si applicano agli spegnimenti del sistema in sospeso e possono appartenere a un altro amministratore, quindi si prega di controllare prima. Questo non è un comando per annullare un riavvio o spegnimento immediato già avviato. In alcune versioni recenti di systemd, è possibile visualizzare gli spegnimenti in sospeso con shutdown --show, ma alcune versioni potrebbero non avere questa opzione. Per un comportamento dettagliato, consultare man shutdown sul proprio sistema e la documentazione systemd di shutdown.

Invio solo di notifiche e risoluzione dei problemi

shutdown -k di systemd invia notifiche agli utenti connessi senza effettivamente spegnere o riavviare. Ad esempio, il seguente comando invia un messaggio con l'orario.

sudo shutdown -k +10 "Maintenance notice"

Il modo in cui le notifiche vengono ricevute può variare a seconda delle sessioni dell'utente e delle impostazioni del sistema, quindi anche gli annunci di lavoro importanti dovrebbero essere consegnati tramite canali separati. -k non è una vera e propria chiusura programmata.

  • Errore di permesso: Controlla i permessi sudo e la politica di autenticazione del sistema.
  • Comando o opzione diversa: Poiché il comportamento può variare a seconda della distribuzione e del sistema di inizializzazione, controlla man shutdown e man systemctl.
  • Connessione fallita dopo il riavvio: Attendi abbastanza tempo e poi controlla lo stato di alimentazione, rete, SSH e dei servizi essenziali dalla console di gestione.