Amorçage, démarrage du système

shutdown : Arrêter et redémarrer un système Linux (systemd)

Table des matières

Introduction



La commande shutdown permet d'arrêter ou redémarrer un système Linux de manière contrôlée.

La commande shutdown est historiquement une commande système dédiée.

Cet article ne traite que du comportement de la commande shutdown sur un système utilisant systemd (Fedora, Red Hat Enterprise Linux 7+, Debian 8+, Ubuntu 16.04+ )
En effet, la commande shutdown n'est plus qu'un lien symbolique vers la commande /usr/bin/systemctl. Pour le vérifier :

Code BASH :
readlink -f $(which shutdown)


La commande shutdown nécessite les droits root pour être exécutée.

Arrêt et redémarrage du système



Pour arrêter le système, on invoquera la commande sans options ou avec l'option -h :
Code BASH :
shutdown -h


L'arrêt sera initié 60 secondes après la validation de la commande.
Un message est envoyé à tous les utilisateurs connectés avertissant de l'arrêt du système :
Code :
Broadcast message from root@testdays on pts/3 (Thu 2024-02-22 18:37:07 CET):
The system will power off at Thu 2024-02-22 18:38:07 CET!


Les sessions connectées graphiquement ne reçoivent pas le message de diffusion. Seules les sessions TTY reçoivent les messages de diffusion.

Il est possible de spécifier now pour réaliser l'action d'arrêt du système immédiatement :
Code BASH :
shutdown -h now


Si on souhaite redémarrer le système, l'option -r est à utiliser (sans now, le redémarrage s'opère au bout de 60 secondes) :
Code BASH :
shutdown -r now


Cette commande a le même effet que reboot, qui effectue le redémarrage du système immédiatement

Planifier un arrêt du système



Grâce à la commande shutdown, on pourra planifier l'arrêt (avec -h) ou le redémarrage (avec -r) en spécifiant une chaîne d'indication d'heure de la forme suivante :
  • +m : où m est le délai en minutes
  • hh:mm : où hh:mm est l'heure à laquelle exécuter l'action


Par exemple, pour planifier un redémarrage à 22:00 :
Code BASH :
shutdown -r 22:00


Code :
Reboot scheduled for Thu 2024-02-22 22:00:00 CET, use 'shutdown -c' to cancel.


5 minutes avant le redémarrage planifié, les utilisateurs ne peuvent plus se connecter au système (hormis root) :
Code :
[adrien@SSH222 ~]$ ssh 192.168.21.100
[email protected]'s password:
System is going down. Unprivileged users are not permitted to log in anymore. For technical details, see pam_nologin(8).
Connection closed by 192.168.21.100 port 22

shutdown-nologin



Annuler un arrêt planifié



Lorsqu'un arrêt ou redémarrage a été planifié, il est possible de l'annuler.

On pourra vérifier si un arrêt ou redémarrage a été planifié avec :
Code BASH :
shutdown --show


Ce qui peut nous retourner ce type de message si c'est le cas :
Code :
Shutdown scheduled for Thu 2024-02-22 22:00:00 CET, use 'shutdown -c' to cancel.


Pour annuler la planification, invoquer shutdown avec l'option -c :
Code BASH :
shutdown -c


Un message est envoyé à tous les utilisateurs connectés avertissant de l'annulation :
Code :
Broadcast message from root@testdays on pts/1 (Thu 2024-02-22 18:59:42 CET):
System shutdown has been cancelled


Personnaliser les messages de diffusion



Lorsque la commande shutdown est utilisée, un message est diffusé à tous les utilisateurs :
Code :
Broadcast message from root@testdays on pts/1 (Thu 2024-02-22 19:02:41 CET):
The system will power off at Thu 2024-02-22 19:07:41 CET!


Il est possible de ne pas afficher ce message avec --no-wall aussi bien dans le cas de la planification que de l'annulation de la planification :
Code BASH :
shutdown -h +5 --no-wall


Il n'est pas possible, à ma connaissance, de personnaliser le message envoyé par shutdown.
La solution possible est la suivante : Planifier l'opération avec l'option --no-wall et d'utiliser la commande wall en complément :
Code BASH :
shutdown -h +5 --no-wall
 wall "On reboot dans 5 minutes!"


On notera que le shell qui émet la commande wall ne reçoit pas le message de diffusion.
Cette page a été vue 2174 fois