15/11/2024

Commandes et SystèmeLinux

Comment redémarrer un serveur Unix/Linux ?

I. Présentation

Il arrive parfois que lors d’une opération de débogage ou de mise à jour du système, il soit nécessaire de redémarrer le serveur. Nous savons comment afficher le temps d’activité d’une machine, grâce à la commande uptime. Je vous propose ici de voir comment rebooter le système d’un serveur sous GNU/Linux.

Sur les distributions modernes (et cela n’est pas restrictif aux seules distributions CentOS ou Red Hat), l’utilitaire systemctl remplace les bonnes vieilles commandes de gestion d’arrêt-redémarrage du système, propres aux anciennes versions SystemV gérées par sysvinit. Ainsi, les instructions reboot et shutdown ne sont plus que de simples alias, de la seule et unique commande: systemctl.

II. Utilisation de la commande systemctl

Afin de de redémarrer un serveur sous GNU/Linux, il est possible d’utiliser la commande systemctl en mentionnant l’option reboot, au même titre que si l’on souhaitait gérer un service :

# systemctl reboot

Cela déclenche alors le redémarrage immédiat de la machine. Lorsque cette phase est initiée, tous les utilisateurs jusque-là connectés, ainsi que les processus actifs sont avertis de l’arrêt-redémarrage imminent du serveur et plus aucune connexion n’est alors autorisée.

REMARQUE : bien que cela ne soit pas recommandé, on peut désactiver l’envoi du message d’avertissement avant le redémarrage en utilisant l’option --no-wall :

# systemctl --no-wall reboot

A contrario, si l’on souhaite personnaliser le message envoyé par systemctl alors, on peut le faire au travers de l’option --message :

# systemctl –-message="ATTENTION : mise à jour logicielle > reboot imminent" reboot

 

III. Utilisation des anciennes commandes

Pour les nostalgiques de SystemV, comme nous l’avons souligné en introduction, les anciennes commandes shutdown et reboot fonctionnent toujours sur les distributions récentes, même s’il ne s’agit que d’alias. On peut donc exécuter l’ordre suivant :

# shutdown -r

Par défaut, cela déclenchera une minute après, le redémarrage du serveur. Il est bien sûr possible de spécifier l’heure exacte à laquelle on souhaite exécuter ce "reboot". Le format du paramètre de temps peut prendre deux formes :

• Une heure au format absolu hh:mm
• Une heure au format relatif +mm

Dans ce dernier cas, on passe le nombre de minutes à attendre avant le redémarrage, en se basant sur l’heure actuelle. Ainsi, trois cas de figure peuvent se présenter pour formaliser une demande de reboot :

• Un redémarrage à heure fixe :

# shutdown -r 11:05

• Un redémarrage dans dix minutes :

# shutdown -r +10

• Un redémarrage immédiat :

# shutodwn -r now

Bien évidemment, la commande reboot peut aussi faire l’affaire. Mais, en réalité, si l'ordre reboot est appelé lorsque le système n’est pas dans le niveau d’exécution 0 ou 6, c’est-à-dire, lorsque le système s’exécute normalement, c’est la commande shutdown (avec son option -r) qui sera appelée.

Si l’on souhaite affecter un message d’explication à ce redémarrage programmé (en absolu ou en relatif), il suffit de libeller ce message en argument après la commande elle-même :

# shutdown -r +10 "ATTENTION : mise à jour logicielle > reboot imminent"

IMPORTANT : lorsque l’on spécifie un message personnalisé lors d’une demande de redémarrage, il faut toujours fournir un paramètre de temps avec.

Lorsque l’on a programmé une demande de redémarrage, et que l’on souhaite l’annuler (pour tout un tas de bonnes raisons), cela est possible via l’option -c :

# shutdown -c

ATTENTION : cela annule un arrêt/redémarrage en cours. Il n’est donc pas utile de mentionner un paramètre de temps. Par contre, on peut lui associer un message d’explication à même la ligne de commande.

IV. Conclusion

Dans ce tutoriel, nous avons vu comment redémarrer une machine Linux en ligne de commande. Il apparaît que pour l’instant les deux modes SystemD via systemctl et SystemV via les commandes reboot et shutdown fonctionnent parfaitement.

A l’avenir, peut-être ne pourra-t-on utiliser que la commande systemctl. Mais, cela ne devrait alors pas vous surprendre, car vous connaîtrez déjà son mode de fonctionnement. J’espère que cela pourra vous être utile.

author avatar
Philippe PIERRE
A exercé de nombreuses années en tant qu'administrateur de base de données et comme administrateur Système Unix/Linux. Il a enseigné les réseaux au CNAM (Paris). Aujourd'hui, employé en tant qu'ingénieur infrastructure, au sein d'un laboratoire pharmaceutique et administrant un cluster de calculs HPC, il connaît parfaitement les environnements GNU/Linux dans le cadre d'une entreprise et des systèmes de haute disponibilité. Il aime partager son expérience.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

1 commentaire sur “Comment redémarrer un serveur Unix/Linux ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.