Comando shutdown in Linux: programmare e annullare spegnimenti o riavvii

shutdown richiede lo spegnimento o il riavvio di un sistema Linux, subito oppure con un ritardo. Puoi lasciare agli utenti il tempo di prepararsi e annullare una richiesta pianificata mentre è ancora pendente.

Nell'implementazione di systemd, l'azione predefinita è lo spegnimento e omettere l'orario equivale a +1, cioè un minuto dopo. now o +0 richiede l'azione immediata, +10 indica dieci minuti di attesa e -r sceglie il riavvio. Questi valori non vanno generalizzati ad altre implementazioni: prima di intervenire controlla il manuale della macchina.

Sintassi di base

sudo shutdown [opzioni] [orario] [messaggio]

Le parentesi indicano parti facoltative e non vanno digitate. sudo usa le autorizzazioni previste dal sistema; in una sessione SSH il bersaglio è la macchina remota. Consulta man shutdown per verificare implementazione e opzioni disponibili.

Il tempo può essere un ritardo in minuti, come +10, oppure un orario nel formato a 24 ore hh:mm. Per un messaggio agli utenti devi specificare anche il tempo. Un orario assoluto va confrontato con l'orologio e il fuso della macchina: il manuale systemd corrente avverte che un orario già trascorso può provocare l'azione immediata. Non presumere che significhi automaticamente «domani»; verifica il comportamento della versione locale e la pianificazione risultante.

Esempi di pianificazione e cancellazione

Spegnere tra dieci minuti

Questo comando cambia lo stato futuro della macchina: usalo soltanto dopo aver verificato il bersaglio, concordato l'intervento e preparato gli utenti e i servizi.

sudo shutdown +10 'Spegnimento per manutenzione tra 10 minuti'

In systemd programma lo spegnimento, non il riavvio. Il messaggio accompagna la comunicazione agli utenti collegati; non salva i loro documenti né conclude automaticamente le operazioni dell'applicazione. Salva i dati e gestisci aggiornamenti, backup e scritture del database prima dell'arresto.

Riavviare tra dieci minuti

sudo shutdown -r +10 'Riavvio del server tra 10 minuti'

-r richiede il riavvio. Scegli questo comando come alternativa al precedente, senza eseguirli entrambi come una sequenza di apprendimento. Per preparazione e controlli dopo la riconnessione, consulta la guida al comando reboot. Il ritorno del comando indica l'esito della richiesta, non il completamento del futuro riavvio.

Annullare una richiesta pendente

sudo shutdown -c

Usalo prima dell'avvio della procedura di arresto e conferma che la richiesta da annullare sia quella concordata. Non seleziona una prenotazione privata del singolo terminale: riguarda l'operazione pendente della macchina e può interferire con la manutenzione di un altro amministratore. Comunica agli utenti il cambio di programma e verifica il risultato.

Verificare pianificazione e cancellazione

Le due righe seguenti riassumono creazione e cancellazione di un riavvio differito. Sono comandi reali, non una simulazione: non provarli su un server operativo. In un laboratorio isolato, esamina la pianificazione dopo la prima riga e prima di decidere di eseguire la seconda.

sudo shutdown -r +10
sudo shutdown -c

Nelle versioni che lo supportano, shutdown --show mostra l'azione e l'orario pendenti; è disponibile da systemd 250. Controlla che il primo comando abbia selezionato il riavvio e l'orario desiderati, poi ricontrolla dopo la cancellazione. Se --show non è supportato, usa i metodi di verifica documentati per quella versione: un errore «opzione sconosciuta» non significa che non esista una pianificazione.

Le notifiche e il loro testo variano con implementazione e sessione, quindi non aspettarti una stringa fissa. Il tempo pianificato indica l'inizio più precoce richiesto per l'operazione; non è una garanzia che arresto e riavvio terminino in quell'istante. Un blocco o un ritardo va diagnosticato, senza ripetere alla cieca la richiesta.

-c riguarda la richiesta differita ancora pendente: non è una garanzia di cancellazione per now, +0 o una procedura già iniziata. Inoltre un'automazione indipendente può programmare un'altra operazione dopo la cancellazione. Controlla il registro delle modifiche e gli strumenti di orchestrazione dell'ambiente, oltre allo stato osservato sul server.

Opzioni e formati principali

Forma Significato in systemd
now Equivale a +0: richiede l'azione immediata, senza un intervallo utile su cui fare affidamento per annullarla.
+N Attende N minuti prima dell'azione richiesta. L'omissione del tempo implica +1.
-r Sceglie il riavvio anziché lo spegnimento.
-P Sceglie esplicitamente lo spegnimento, che è l'azione predefinita.
-c Annulla la richiesta differita ancora pendente; non ripristina una macchina già in arresto.
--show Mostra azione e orario pendenti se presenti; richiede una versione che supporti l'opzione, introdotta in systemd 250.

Mai confondere maiuscole e minuscole: -H richiede halt, cioè l'arresto del sistema senza necessariamente togliere alimentazione, mentre -P sceglie power-off. -h corrisponde normalmente a power-off ma, in systemd, non sostituisce un'azione halt già scelta. Per indicare chiaramente lo spegnimento usa -P, senza combinare opzioni d'azione contrastanti.

Precauzioni prima dell'esecuzione

Conferma host e finestra di manutenzione, verifica gli utenti e le attività in background e prepara un accesso alla console. L'elenco delle sessioni non include tutti i servizi o i lavori automatici. Un preavviso non sostituisce il coordinamento con chi gestisce database e applicazioni. Per controllare l'identità puoi consultare hostnamectl, confrontando anche indirizzo e inventario della macchina.

Durante una pianificazione systemd può creare /run/nologin negli ultimi cinque minuti prima dell'arresto per impedire nuovi accessi ordinari. Non affidarti quindi alla possibilità di aprire una nuova sessione poco prima della scadenza. Tieni pronto l'accesso di recupero concordato; non rimuovere manualmente i meccanismi di protezione per proseguire una prova.

Dopo un riavvio, riconferma il sistema, controlla i servizi e verifica che le applicazioni rispondano. Dopo una cancellazione, verifica che non resti una richiesta pendente e che eventuali automazioni non la ricreino. Una cancellazione riuscita non modifica da sola timer, procedure esterne o politiche di manutenzione.

Domande frequenti

Posso annullare uno shutdown programmato?

Sì, puoi usare sudo shutdown -c mentre la richiesta differita è ancora pendente, poi verificarne lo stato. Non fare affidamento su un annullamento se hai richiesto l'esecuzione immediata o se l'arresto è già cominciato. Controlla anche eventuali pianificazioni esterne e avvisa gli utenti del cambiamento.

Documentazione di riferimento

Il manuale shutdown di systemd descrive tempi, azioni, cancellazione e differenze di compatibilità. Confronta le indicazioni con man shutdown della macchina su cui intendi intervenire.