GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment utiliser l'outil Magic SysRq dans CentOS / RHEL

Qu'est-ce que l'utilitaire SysRq

Si votre noyau se fige ou/et se bloque, vous pouvez utiliser l'outil SysRq "magique". La clé SysRq "magique" permet un accès instantané à plusieurs commandes essentielles du noyau, notamment Sync, Unmount, kill process, showMem, showPc et reBoot. Selon la documentation du noyau Linux :

Il s'agit d'une combinaison de touches "magique" que vous pouvez appuyer sur laquelle le noyau répondra indépendamment de tout ce qu'il fait, même si la console ne répond pas.

Comment activer SysRq

La touche SysRq peut être activée en réglant le ‘Magic SysRq’. Vous devez vous assurer que le kernel.sysrq dans sysctl.conf est correctement défini :

kernel.sysrq = 1 (SysRq turned ON)
kernel.sysrq = 0 (SysRq turned OFF)
Remarque :Sur CentOS/RHEL 7, vous devez apporter les modifications dans "/usr/lib/sysctl.d/50-default.conf"

Les paramètres ci-dessus garantissent que SysRq est activé par défaut après le démarrage du système (par défaut, il est désactivé dans CentOS/RHEL). Pour l'activer, exécutez-le immédiatement dans la session en cours, utilisez la commande ci-dessous :

# echo 1 > /proc/sys/kernel/sysrq

Et pour le désactiver à nouveau :

# echo 0 > /proc/sys/kernel/sysrq
REMARQUE :Étant donné que l'activation de SysRq donne à quelqu'un ayant accès à la console physique des capacités supplémentaires, il est recommandé de le désactiver lorsqu'il ne résout pas un problème ou pour s'assurer que l'accès à la console physique est correctement sécurisé.

Comment déclencher un événement SysRq

Il existe plusieurs façons de déclencher un événement SysRq. Sur la plupart des architectures, les événements SysRq peuvent être déclenchés depuis la console avec la combinaison de touches suivante :

Alt+PrintScreen+[CommandKey]

Le PrintScreen est la clé utilisée comme clé SysRq dans la plupart des systèmes Linux.

Pour accéder à un système non réactif, appuyez sur Alt+SysRq et H pour obtenir une liste d'options. Une version différente du noyau peut avoir des options différentes. Pour obtenir les options prises en charge pour votre noyau actuel, vous pouvez exécuter la commande ci-dessous en tant que root :

# echo h > /proc/sysrq-trigger

et vérifiez la sortie de dmesg. Vous trouverez ci-dessous un exemple sur le système RHEL 7 :

# dmesg
[ 4338.124035] SysRq : HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems(j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) unraw(r) sync(s) show-task-states(t) unmount(u) force-fb(V) show-blocked-tasks(w) dump-ftrace-buffer(z)

Types d'événements SysRq

Plusieurs événements SysRq peuvent être déclenchés une fois la fonction SysRq activée. Ceux-ci varient quelque peu entre les versions du noyau, mais il y en a quelques-uns qui sont couramment utilisés :

Clé Fonction
m vider les informations sur l'allocation de mémoire
t vider les informations d'état du thread
p vider les registres et drapeaux CPU actuels
c planter intentionnellement le système (panique du noyau). Utile pour capturer un vmcore via kdump.
s synchroniser immédiatement tous les systèmes de fichiers montés
u remonter immédiatement tous les systèmes de fichiers en lecture seule
b redémarrer immédiatement la machine
o éteindre immédiatement la machine (si configuré et pris en charge)
f démarrez le tueur de mémoire insuffisante (OOM)
w vide les tâches qui sont dans un état ininterruptible (bloqué)

Comment déclencher un événement SysRq à partir du shell racine

Si vous avez un shell root sur la machine (et que le système répond suffisamment pour que vous le fassiez), vous pouvez également écrire le caractère de la clé de commande dans /proc/sysrq-trigger dossier. Ceci est utile pour déclencher cette information lorsque vous n'êtes pas sur la console système ou pour la déclencher à partir de scripts.

# echo 'm' > /proc/sysrq-trigger

Cette méthode a l'avantage supplémentaire de fonctionner même lorsque kernel.sysrq est mis à 0.

CentOS / RHEL 6 :Comment configurer kdump
CentOS / RHEL 7 :Comment configurer kdump


Cent OS
  1. Comment utiliser le sel sur Centos 8

  2. Comment utiliser l'outil de mise à niveau RedHat pour mettre à niveau CentOS de 6.x vers CentOS 7 ?

  3. Comment modifier les limites du sémaphore du noyau dans CentOS/RHEL

  4. Comment utiliser iptables au lieu de firewalld sur CentOS/RHEL 7 et 8

  5. CentOS / RHEL 6 :Comment configurer kdump

Comment installer Check_MK (outil de surveillance) sur CentOS 7 / RHEL 7

Comment utiliser tmpfs sur RHEL/CentOS 7

Comment installer Cacti sur CentOS 7 / RHEL 7 - Un outil de surveillance du réseau

Comment démarrer en mode mono-utilisateur dans CentOS 8 / RHEL 8

Comment installer et utiliser Firewalld dans CentOS / RHEL

CentOS / RHEL 7 :Comment configurer kdump à l'aide de l'interface graphique