Che siate amministratori di sistema abituati a gestire server remoti tramite linea di comando o semplicemente utenti desktop, il comando shutdown linux da riga di comando è utile in molte situazioni. Vedremo come utilizzarlo al meglio e ne analizzeremo le varie opzioni con un po’ di esempi.
Il comando shutdown arresta il sistema in maniera sicura, notificando tutti gli eventuali utenti connessi, impedendo nuovi login e terminando tutti i processi in esecuzione sulla macchina. Il comando shutdown può essere eseguito immediatamente o programmato per uno specifico momento. Inoltre un messaggio personalizzato può essere inviato a tutti gli utenti attualmente connessi al server per avvisarli dell’imminente chiusura della loro sessione.
Sintassi del comando shutdown
Prima di iniziare con gli esempi analizziamo la sintassi del comando in modo che poi sia tutto più chiaro.
shutdown [opzioni] [tempo] [messaggio]
- Opzioni: le opzioni di terminazione del sistema ( halt, spegnimento, riavvio), default se non specificato spegnimento.
- Tempo: Argomento relativo a quando effettuare l’arresto del sistema, può essere un orario specifico, un ritardo a partire dal momento in cui il comando viene eseguito oppure semplicemente nel momento in cui il comando viene eseguito.
- Messaggio: un messaggio che verrà notificato a tutti gli utenti attualmente connessi alla macchina, può essere utilizzato per avvisare dell’imminente arresto.
Per utilizzare il comando shutdown dovremo avere i permessi di amministratore sulla macchina quindi dovremo accedere come root o utilizzare sudo dove possibile.
Esempio base del comando shutdown
Possiamo usare il comando shutdown senza specificare argomenti, in questo caso il sistema verrà arrestato con un ritardo di 1 minuto.
sudo shutdown
La risposta che avremo sarà semplicemente una conferma con l’orario in cui verrà effettuato il reboot.
Arrestare il sistema in un momento specifico
Il parametro relativo al ritardo del comando shutdown ha due diversi formati:
- Assoluto: Indica un orario specifico nel formato hh:mm quindi per esempio 18:45
- Relativo: Indica un ritardo in minuti rispetto a quando viene lanciato il comando, per esempio possiamo specificare +5 per schedulare l’arresto 5 minuti dopo l’esecuzione del comando.
Per riavviare il server alle 10:30 di mattina dovremo quindi usare il comando:
sudo shutdown 10:30
Per riavviare il server fra 5 minuti eseguiremo:
sudo shutdown +5
Arrestare il sistema subito
Per terminare il sistema immediatamente senza attendere un tempo di ritardo è possibile usare l’argomento +0 o in alternativa il suo alias now. I due esempi seguenti sono quindi equivalenti:
sudo shutdown now sudo shutdown +0
Inviare un messaggio di avviso prima dell’arresto del sistema
Come abbiamo accennato all’inizio, è possibile inviare a tutti gli utenti attualmente connessi al server un messaggio di avviso dell’imminente arresto del sistema. Questo messaggio può essere utilizzato per spiegare le ragioni dell’arresto, quando il sistema dovrebbe tornare attivo o semplicemente per permettere agli utenti di salvare il proprio lavoro prima che sia troppo tardi.
L’esempio seguente terminerà il sistema fra 20 minuti, avvisando gli utenti che verrà effettuata della manutenzione straordinaria.
sudo shutdown +20 "Stiamo effettuando manutenzione straordinaria programmata"
Da notare che quando specifichiamo un messaggio di arresto dobbiamo specificare anche il parametro relativo al ritardo.
Riavviare il sistema con il comando shutdown
Nell’articolo relativo a come riavviare il sistema abbiamo visto in dettaglio come effettuare questa operazione, vediamo comunque un esempio e rimandiamo all’articolo per ulteriori informazioni.
Per riavviare il sistema invece di arrestarlo possiamo utilizzare il parametro -r
sudo shutdown -r
Ovviamente possiamo usare il parametro -r insieme al ritardo e al messaggio per shedulare un riavvio programmato con messaggio di avviso.
sudo shutdown -r +20 "Riavvio per aggiornamento di sistema"
Il comando qui sopra riavvierà il sistema fra 20 minuti avvisando gli utenti che è in corso un aggiornamento di sistema.
Annullare uno shutdown programmato
Se abbiamo programmato uno shutdown ma vogliamo cancellarlo possiamo utilizzare il parametro -c
sudo shutdown -c
In questo caso non possiamo specificare un ritardo programmato (se abbiamo deciso di annullarlo tanto vale farlo subito) ma possiamo comunque specificare un messaggio da mandare a tutti gli utenti.
sudo shutdown -c "Riavvio annullato, manutenzione posticipata"
Conclusioni
Con questi esempi dovremmo aver coperto tutti gli utilizzi più comuni, per ulteriori dettagli potete leggere la pagine del manuale del comando shutdown di linux.