Appels système au clavier : les Touches Magiques

Qu'est-ce que c'est ?

Les touches magiques sont des combinaisons de touches qui permettent d'envoyer des appels directement au noyau. Il s'agit de combinaisons du type : Alt+SysRq+Touche. La touche SysRq (pour System Request), ou Syst, correspond souvent à la touche Imprim Écran (juste au-dessus de la touche Inser ou Del).

Pré-requis

Pour pouvoir accéder aux touches magiques, il faut que cette fonctionnalité ait été activée dans le noyau. C'est le cas par défaut pour Ubuntu, mais ça peut ne pas l'être pour d'autres distributions (pour le savoir, vérifiez l'existence du fichier /proc/sys/kernel/sysrq).

Si vous compilez vous-même votre noyau, il vous faut mettre l'option Magic SysRq key du menu Kernel Hacking à oui. Sachez cependant que certaines personnes1) considèrent ces touches magiques comme un trou de sécurité.
A ce titre, les touches magiques ont été désactivée entièrement dans Ubuntu 12.04 LTS Precise (cf. LP #194676) et réactivée partiellement depuis Ubuntu 14.04 LTS Trusty (cf. LP #1025467). Voir Activer ou désactiver les touches magiques.

Vous pouvez également bloquer cette fonctionnalité en mettant kernel.sysrq=0 dans le fichier /etc/sysctl.conf, à créer si besoin (ou la débloquer en mettant 1).

Les combinaisons de touches

Les touches magiques sont documentées en détail dans le fichier /usr/share/doc/linux-doc-`uname -r`/Documentation/sysrq.txt.gz fourni par le paquet linux-doc-`uname -r` (dépend de votre version du noyau, donnée par la commande uname -r).

NB : les touches ne tiennent pas compte de la disposition de votre clavier et sont basées sur le layout qwerty source
Pour connaître les touches correspondantes en AZERTY ou DVORAK voir la page Magic_SysRq_key.

Depuis Ubuntu 14.04 LTS Trusty, seules les combinaison avec S, U et B sont activées par défaut.

Les combinaisons disponibles sont :

Combinaison Effet Signification Valeur
Alt SysRq 0-9 Détermine le niveau de log de la console 2
Alt SysRq b Redémarre l'ordinateur reBoot 128
Alt SysRq c Redémarre via kexec pour faire un crashdump Crashdump 8
Alt SysRq e Envoie un signal de terminaison (SIGTERM) à tous les processus (sauf init) tErm 64
Alt SysRq f Tue le processus qui consomme le plus de mémoire (via oom-killer) 64
Alt SysRq i Envoie un signal de fin (SIGKILL, plus ferme que SIGTERM) à tous les processus (sauf init) kIll 64
Alt SysRq k Tue tous les processus de la console virtuelle courante. Key 64
Alt SysRq l (L minuscule) Envoie un signal de fin (SIGKILL, plus ferme que SIGTERM) à tous les processus (même init) kilL 64
Alt SysRq m Affiche le contenu actuel de la mémoire Memory 8
Alt SysRq o Éteint le systeme via APM Out 128
Alt SysRq p Affiche sur la console les registres et drapeaux actuels Print 8
Alt SysRq r Bascule la gestion du clavier de mode brute (raw) à XLATE Raw 4
Alt SysRq s Synchronise les disques (tente d'écrire toutes les données non sauvegardées) sync 16
Alt SysRq t Affiche une liste des taches et autres informations dans la console Task 8
Alt SysRq u Remonte les disques en lecture seule Umount 32

Procédure pour redémarrer votre machine

Depuis le serveur X (l'interface graphique), il peut être nécessaire de commencer par se réapproprier le clavier, par la combinaison Alt SysRq r.

Effectuez les combinaisons de touches suivantes, dans l'ordre :

  1. Alt SysRq s - Synchronise les disques
  2. Alt SysRq e - Essaie de fermer les processus en envoyant SIGTERM [facultatif]
  3. Alt SysRq i - Tue tous les processus restant en envoyant SIGKILL [facultatif]
  4. Alt SysRq u - Démonte les disques
  5. Alt SysRq b - Redémarre

Il est important d'attendre plusieurs secondes entre les différentes étapes, car en cas de plantage sévère vous ne verrez pas les messages de progression s'afficher…

Un moyen mnémotechnique parmi d'autres pour se souvenir de la séquence : Stopper Ubuntu Brusquement (pour la séquence longue : Savoir Eteindre Intégralement Ubuntu Brusquement ou So Everything Is Unusual, Boot).

Certains utilisent la séquence : REISUB ( Retourner En Islande Sur Un Bateau).

Activer ou désactiver les touches magiques

À partir d'Ubuntu 12.10, le contrôle des touches magiques se paramètre dans le fichier /etc/sysctl.d/10-magic-sysrq.conf.

Y ajouter la ligne « kernel.sysrq=1 » réactive toutes les touches magiques, les experts en sécurité informatiques n'aiment pas beaucoup mais c'est bien pratique.

Pour activer certaines touches seulement, il faut indiquer la somme des touches (cf. Les combinaisons de touches).
La valeur par défaut depuis Ubuntu 14.04 LTS Trusty est 176, c'est à dire 16 (S = sync) + 32 (U = remount read-only) + 128 (B = reboot).

Voir aussi


Contributeurs : nknico, naoli

1)
Cf. le YALIG (Yet Another Linux Installation Guide) de Christian Casteyde.
  • touches_magiques.txt
  • Dernière modification: Le 28/04/2018, 11:22
  • (modification externe)