1 26/04/2026 3 min

Se devi spegnere un sistema Linux in modo pulito, i tre comandi da conoscere davvero sono systemctl poweroff, shutdown e halt. Sembrano equivalenti, ma non lo sono: cambiano il modo in cui coinvolgono systemd, il preavviso agli utenti, la possibilità di pianificare lo spegnimento e il comportamento finale della macchina.

In pratica, la scelta giusta dipende da due domande: vuoi chiudere subito oppure programmare lo stop? E vuoi solo fermare il sistema o anche togliere alimentazione alla macchina, se l’hardware lo supporta? Su server e VPS la differenza è minima in apparenza, ma in produzione conta eccome, soprattutto se ci sono sessioni attive, job schedulati, filesystem montati in rete o servizi che richiedono uno stop ordinato.

1) systemctl poweroff: lo spegnimento più diretto su systemd

Su sistemi moderni con systemd, systemctl poweroff è il comando più lineare per spegnere la macchina. Non è solo un alias “più elegante”: passa attraverso il gestore di init, quindi coordina l’arresto dei servizi, la chiusura dei mount e la disattivazione del sistema nel modo previsto dalla piattaforma.

Lo userai quando vuoi un’azione immediata e leggibile, per esempio da una shell SSH amministrativa:

systemctl poweroff

Il vantaggio principale è la coerenza con il resto dell’ecosistema systemd. Se un servizio è in stato anomalo, systemd prova comunque a rispettare le dipendenze e i timeout definiti nei unit file. Non è magia: se hai servizi che ignorano SIGTERM o che impiegano troppo a chiudersi, puoi vedere un ritardo tra il comando e lo spegnimento reale.

Un controllo utile prima di usare il comando è verificare che la sessione sia davvero sulla macchina giusta. Sembra banale, ma in ambienti con nomi host simili e accesso tramite jump host è l’errore classico:

hostnamectl

Se vuoi capire se il sistema è effettivamente basato su systemd, puoi controllare anche il processo PID 1:

ps -p 1 -o pid=,comm=

Atteso: systemd. Se non lo è, il comando può non avere il significato che ti aspetti. In quel caso sei in un container, in un ambiente init diverso o in una distribuzione molto particolare.

2) shutdown: il comando giusto quando ti serve preavviso

shutdown è il comando più utile quando devi dare tempo agli utenti o ai processi di chiudersi. È quello che usi quando lo stop va annunciato, schedulato o eseguito con un margine. È il classico strumento da manutenzione: invia un messaggio, può essere ritardato e gestisce l’arresto in modo ordinato.

Esempio di spegnimento immediato:

shutdown -h now

Qui -h indica che il sistema deve fermarsi e portarsi allo stato di halt/poweroff secondo l’hardware e la configurazione. Su molte macchine equivale allo spegnimento effettivo. Se vuoi programmare lo stop tra 10 minuti:

shutdown -h +10

Se vuoi avvisare gli utenti con un messaggio esplicito:

shutdown -h +15