Apagar, reiniciar o tancar la sessió a LinuxComandes LinuxLinux

La comanda shutdown a Linux: apagar i reiniciar el sistema amb seguretat



La comanda shutdown apaga o reinicia el sistema de manera ordenada, ara mateix o a una hora programada, i avisa els usuaris connectats abans de fer-ho. És la manera clàssica d’apagar un servidor: els serveis s’aturen un per un, els discos es desmunten i no es perden dades.

A les distribucions actuals amb systemd (Debian 13, Ubuntu 24.04, Rocky/Alma 9-10, Fedora…), shutdown ja no és un programa independent: és un enllaç a systemctl que manté la sintaxi de sempre per compatibilitat.

$ ls -l /usr/sbin/shutdown
lrwxrwxrwx 1 root root 16 /usr/sbin/shutdown -> ../bin/systemctl

Sintaxi

sudo shutdown [opcions] [hora] [missatge]
  • hora: now (ara mateix), +m (d’aquí a m minuts) o hh:mm (a una hora concreta, en format de 24 hores). Si no poses cap hora, s’entén +1: el sistema s’apagarà d’aquí a un minut.
  • missatge: text que rebran tots els usuaris connectats al seu terminal. Per posar missatge cal indicar també l’hora.

Cal ser root o fer servir sudo.

Opcions més útils

OpcióQuè fa
-P, --poweroffApaga la màquina (és l’acció per defecte)
-hIgual que -P (apagar); amb -H al davant, només atura
-r, --rebootReinicia
-H, --haltAtura el sistema però deixa la màquina encesa
-cCancel·la un apagat o reinici programat
--showMostra si hi ha un apagat programat i per a quina hora
-kNo apaga res: només envia el missatge d’avís als usuaris
--no-wallApaga o reinicia sense enviar el missatge als usuaris

Exemples

Apagar ara mateix:

sudo shutdown now

Reiniciar ara mateix:

sudo shutdown -r now

Apagar d’aquí a 10 minuts:

sudo shutdown +10

Reiniciar d’aquí a 5 minuts avisant els usuaris:

sudo shutdown -r +5 "El servidor es reiniciarà d'aquí a 5 minuts. Deseu la feina."

Tots els usuaris connectats (per SSH o a la consola) veuen el missatge al terminal. A més, 5 minuts abans de l’hora es crea el fitxer /run/nologin, que impedeix que entri ningú més.

Apagar a les 22:00:

sudo shutdown 22:00

Veure si hi ha res programat:

$ shutdown --show
No scheduled shutdown.

Cancel·lar l’apagat o reinici programat:

sudo shutdown -c

Enviar només l’avís, sense apagar res (per exemple, per anunciar una aturada que faràs més tard):

sudo shutdown -k +15 "Aturada per manteniment a les 15:00"

Correccions respecte a la versió antiga d’aquest post

  • No cal afegir & al final (shutdown -r +60 &). La comanda programa l’acció i et torna el prompt immediatament; el compte enrere el porta systemd, no el terminal. Pots tancar la sessió i l’apagat es farà igualment.
  • -k now no avisa de res útil: amb now no hi ha marge perquè els usuaris reaccionin. Fes servir -k amb un temps (+15) si vols avisar.
  • -h ja apaga del tot. Als sistemes antics (SysV init) -h podia deixar la màquina «aturada» però encesa; amb systemd -h equival a -P (apagar).
  • Sense opcions, shutdown apaga. Amb SysV init passava a mode monousuari; ara, per entrar al mode de rescat, es fa servir systemctl rescue.

L’alternativa moderna: systemctl

shutdown és una interfície de compatibilitat; la mateixa ajuda de la comanda recomana fer servir systemctl:

AbansAra amb systemd
shutdown -h nowsystemctl poweroff
shutdown -r nowsystemctl reboot
shutdown -H nowsystemctl halt
shutdown -r 22:00systemctl reboot --when="22:00"
shutdown --showsystemctl reboot --when=show
shutdown -csystemctl reboot --when=cancel

L’opció --when= existeix des de systemd 254 (Debian 13, Fedora 39 o posterior). A Ubuntu 24.04 (systemd 255) també la tens; a Rocky/Alma 9 (systemd 252) encara no, i allà has de programar-ho amb shutdown.

Compte amb…

  • Feina sense desar: els programes reben l’ordre de tancar-se. Si un editor té canvis pendents, es poden perdre.
  • Servidors remots: si apagues (en lloc de reiniciar) una màquina a la qual et connectes per SSH, ningú no la tornarà a engegar fins que hi vagi algú o la reactivis des del panell del proveïdor. Revisa dues vegades que hagis escrit -r.
  • Bloquejos (inhibitors): alguns programes poden demanar que no s’apagui el sistema mentre treballen. Pots veure’ls amb systemd-inhibit --list.

Comandes relacionades

  • reboot: reiniciar el sistema.
  • halt: aturar el sistema (i poweroff per apagar-lo).
  • init i telinit: els antics nivells d’execució i els targets de systemd.
  • logout i exit: tancar la sessió sense apagar la màquina.
  • Init i systemd: com ha canviat el sistema d’arrencada a Linux.