Come riavviare o spegnere Linux utilizzando la riga di comando

Hai voglia di ricominciare? Questo tutorial ti mostrerà come riavviare o spegnere in modo pulito e sicuro il tuo computer Linux o macOS dalla riga di comando.

Stiamo andando giù

A volte devi solo eseguire il riavvio o l’arresto totale. Se stai lavorando su un server senza GUI o sei in una sessione SSH su un computer remoto, la riga di comando è la tua unica opzione. I sistemi Linux e Unix come macOS forniscono diversi comandi per spegnere o riavviare il sistema direttamente dalla riga di comando.

I comandi che puoi utilizzare sono:

spegnimento
riavviare
fermarsi
spegni

Guardare attraverso le pagine man per questi comandi può creare confusione. A seconda delle opzioni della riga di comando scelte, tutti questi comandi possono essere eseguiti arresti, si riavvia e il sistema si arresta. Infatti, le pagine man per il riavvio, l’arresto e lo spegnimento contengono esattamente le stesse informazioni.

Cosa c’è dietro?

La risposta sta nel systemd bootstrap sistema che ha sostituito il venerabile sistema di inizializzazione System V. Nel mondo Linux, Fedora ha iniziato a utilizzare systemd nel 2011. Da allora è stato adottato da moltissime distribuzioni. Debian e Ubuntu sono passati a systemd nel 2015.

Nelle distribuzioni basate su systemd i comandi shutdown, reboot, halt e poweroff sono effettivamente scorciatoie che puntano al comando systemctl. Il mantenimento di questi comandi fornisce un grado di compatibilità con le distribuzioni basate su init di System V. Significa che gli script della shell (e gli amministratori di sistema System V hard-core) non perdono tempo se vengono spostati su un computer con una distribuzione systemd in esecuzione su di esso.

Utilizzo di Shutdown

Chiudere o riavviare un sistema multiutente significa che devi pianificare in anticipo. È necessario decidere quando eseguire l’arresto o il riavvio e avvisare gli altri utenti del sistema dell’arresto e quando. Se è il tuo computer e sei l’unico che lo usa, la vita è molto più semplice.

Per eseguire uno di questi comandi devi essere nel gruppo sudo. Cioè, devi avere i permessi di superutente ed essere in grado di usare il comando sudo. Se il comando che hai emesso avrà effetto immediato e non avrà effetto sugli altri utenti che hanno effettuato l’accesso, non sarà necessario utilizzare sudo. Se provi a usare uno di questi comandi e il comando viene rifiutato, riprova con sudo.

Per impostazione predefinita, il comando shutdown garantisce che tutti i processi vengano arrestati in modo pulito, tutti i file system siano sincronizzati e tutte le attività della CPU siano cessate. Questo è lo stato di “arresto”. Quindi invia un messaggio all’hardware per interrompere l’alimentazione. Questo, ovviamente, è lo stato di arresto o “spegnimento”.

È comune passare all’arresto alcuni parametri, come una stringa dell’ora e un messaggio che verrà inviato agli utenti che hanno effettuato l’accesso per avvertirli dell’arresto. Pianifichiamo uno spegnimento per 15 minuti da ora. Digita shutdown, uno spazio, +15, uno spazio e quindi il messaggio da inviare agli utenti.

shutdown +15 Shutting down in 15 minutes!

comando di spegnimento +15 messaggio

La stringa temporale che abbiamo utilizzato era +15, che rappresenta 15 minuti da adesso. Il + è facoltativo. Avremmo potuto digitare 15.

Riceviamo una risposta che conferma che è programmato un arresto e quando si verificherà. Gli utenti registrati riceveranno il messaggio che abbiamo fornito.

notifica di arresto

Per annullare un arresto, utilizzare l’opzione -c (cancel).

shutdown -c

Shutdown -c annulla il comando

Anche se non ricevi alcuna notifica che l’arresto è stato annullato, gli utenti che hanno effettuato l’accesso ricevono una notifica.

Avviso di cancellazione

Se non fornisci una stringa temporale, verrà programmato uno spegnimento per un minuto da ora. Tieni presente che non puoi fornire un messaggio agli utenti che hanno effettuato l’accesso se non specifichi una stringa temporale.

shutdown

comando di spegnimento senza parametri

Se non puoi nemmeno aspettare un minuto, puoi usare now come stringa temporale e l’arresto ha effetto immediato. Usare adesso è come usare +0.

arresto ora

La stringa dell’ora può essere un’ora impostata, ad esempio 23:00. Deve seguire il formato HH: MM e deve essere nell’orologio a 24 ore. Cinque minuti prima che il sistema si interrompa, vengono impediti nuovi accessi.

spegnimento 23:00 con messaggio

Sappiamo che l’azione predefinita di spegnimento fa sì che il computer passi allo stato di arresto e quindi allo stato spento. Possiamo sovrascrivere questo comportamento passandogli altre opzioni della riga di comando.

L’opzione -H (halt) porterà il computer in stato di arresto ma non chiederà all’hardware di spegnersi.
-P (poweroff) è l’azione predefinita. Il computer viene portato in stato di arresto e viene quindi spento.
L’opzione -r (riavvio) porterà il computer in stato di arresto e quindi lo riavvierà.
L’opzione -h (halt and poweroff) è la stessa di -P. Se usi -h e -H insieme, l’opzione -H ha la priorità.
L’opzione -c (cancel) annullerà qualsiasi arresto, arresto o riavvio programmato.

Ecco un esempio in cui abbiamo pianificato un riavvio.

shutdown -r 08:20 System rebooting at 08:20

arresto pianificando un riavvio

I comandi di riavvio, arresto e spegnimento

Questi comandi eseguono l’azione suggerita dal loro nome. Tuttavia, ognuno di loro accetterà le opzioni della riga di comando per fare in modo che uno di loro esegua un riavvio, un arresto o uno spegnimento. Ma perché confondere le cose? Questi comandi sono utilizzati al meglio al valore nominale.

Se vuoi riavviare ora, usa il riavvio. Se vuoi spegnere adesso, usa poweroff, e se vuoi fermare il sistema adesso, usa halt.

reboot

riavvia il comando in una finestra di terminale

halt

comando halt in una finestra di terminale

poweroff

comando poweroff in una finestra di terminale

Questi comandi hanno effetto immediato. Se uno qualsiasi di questi comandi viene rifiutato, anteponili a sudo. Ma attenzione, un rifiuto di solito è dovuto al fatto che ci sono altri utenti collegati al sistema che stai per portare offline.

Qual è il comando giusto per me?

In ambienti multiutente, l’utilizzo dell’arresto per eseguire queste azioni offre un maggiore controllo. La possibilità di programmare arresti e riavvii e di avvisare gli utenti con un messaggio di trasmissione sarà inestimabile in questi casi. Per un computer a utente singolo, il riavvio e lo spegnimento probabilmente soddisferanno le tue esigenze.