Avant toute chose et il faut bien le dire, un serveur GNU/Linux ne plante pas, si certaines conditions sont réunies( bonne gestion de la partie matériel et bons paramétrages pour la partie logiciel). Néanmoins, il se peut qu’un ou plusieurs processus soient en attente de traitement, ce qui à pour conséquence de faire grimper le Load Average et au final ressentir un fort ralentissement des performances du système.
Dans un cas simple, il suffit de stopper ou de tuer le ou les processus en question. Cependant, il se peut que l’action de tuer le processus est lui aussi mis en file d’attente et là, seul un reboot de la machine soit la solution. Mais là aussi, même l’action de redémarrage ne soit pas pris en compte immédiatement et là, c’est le drame.
Alors, sur une machine distante c’est assez compliquer de faire un Hard Reboot (Action d’éteindre la machine via le bouton) ou au mieux d’utiliser les Magic Keys.
A travers une connexion ssh, on peut se dire que ce n’est pas possible d’exécuter les Magic Keys, et pourtant c’est possible ! :-D
Pour rappel, voici les principales combinaisons de touches pour un redémarrage propre :
- Alt+Syst+s : Synchronise les disques.
- Alt+Syst+e : Essaie de fermer les processus en envoyant SIGTERM.
- Alt+Syst+i : Tue tous les processus restant en envoyant SIGKILL.
- Alt+Syst+u : Démonte les disques.
- Alt+Syst+b : Redémarre le système.
Forcer un redémarrage d’un serveur GNU/Linux via ssh
A travers la connexion ssh, avec l’aide de la commande echo, il va être envoyé au système les mêmes actions (sauf SIGTERM et SIGKILL) :
echo s > /proc/sysrq-trigger echo u > /proc/sysrq-trigger echo b > /proc/sysrq-trigger
Et là, le serveur redémarre proprement 8-)