Un petit mémo pour essayer d’expliquer les différences entre les commandes halt, poweroff, shutdown et reboot pour la gestion d’extinction ou redémarrage d’un système d’exploitation GNU/Linux.
SysVinit, Upstart, systemd
A l’époque ou mon système était encore sous SysVinit, j’avais écris un article sur comment redémarrer sa machine sous GNU/Linux. Cet article reste encore d’actualité mais, il n’est pas très explicite. D’autant plus, que depuis le passage à systemd, les commandes halt, poweroff, shutdown et reboot pointent tous sur systemctl :
[freddy@manjaro-pc ~]$ ls -l /sbin/halt /sbin/poweroff /sbin/reboot /sbin/shutdown lrwxrwxrwx 1 root root 9 25.11.2015 21:13 /sbin/halt -> systemctl* lrwxrwxrwx 1 root root 9 25.11.2015 21:13 /sbin/poweroff -> systemctl* lrwxrwxrwx 1 root root 9 25.11.2015 21:13 /sbin/reboot -> systemctl* lrwxrwxrwx 1 root root 9 25.11.2015 21:13 /sbin/shutdown -> systemctl*
Cependant, pour les distributions qui ne sont pas encore passées sous systemd, comme par exemple Linux Mint sous Upstart, les commandes shutdown et reboot sont toujours présentes :
fred@mint-mate ~ $ ls -l /sbin/halt /sbin/poweroff /sbin/reboot /sbin/shutdown lrwxrwxrwx 1 root root 6 mai 11 2015 /sbin/halt -> reboot lrwxrwxrwx 1 root root 6 mai 11 2015 /sbin/poweroff -> reboot -rwxr-xr-x 1 root root 14784 juil. 18 2014 /sbin/reboot -rwxr-xr-x 1 root root 84904 juil. 18 2014 /sbin/shutdown
Dans le cas des distributions gérées avec Upstart, les commandes halt et poweroff sont en fait l’exécution de la commande reboot avec l’arguments -p en options :
- halt = poweroff = reboot -p
Donc les commandes halt et poweroff sont identiques et on le même comportement et c’est d’autant plus vrai si on regarde dans /etc/default/halt :
cat /etc/default/halt # Default behaviour of shutdown -h / halt. Set to "halt" or "poweroff". HALT=poweroff
Différence entre halt, poweroff, reboot et shutdown ?
En fait, il est possible de résumer le tout en 2 catégories :
- shutdown : pour arrêter ou redémarrer le système proprement et en alertant les utilisateurs connectés (si plusieurs sessions ouvertes)
- halt, poweroff et reboot : pour arrêter le système en tuant tous les processus en cours et sans avertir personne
Pour d’avantages d’informations, lire le manuel des commandes :
man shutdown
man reboot
Sur un serveur on peut utiliser reboot sans problème du coup ?
oui tu peux mais un shutdown est plus propre :-)
Et bien merci, je vient de me poser la question =)