Comment vérifier si un paramètre de panique du noyau (kernel panic) est actif dans Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier si le paramètre de panique du noyau (kernel panic) est actif sous Linux. Ce laboratoire vous guide tout au long de l'utilisation de la commande sysctl pour inspecter et modifier temporairement le paramètre kernel.panic, qui détermine le comportement du système après une erreur critique.

Vous allez également découvrir comment vérifier la configuration de sysctl en examinant le fichier /etc/sysctl.conf et inspecter les paramètres du noyau dans le répertoire /proc/sys/kernel pour comprendre comment ces paramètres influencent le comportement du système.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/InputandOutputRedirectionGroup(["Input and Output Redirection"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/InputandOutputRedirectionGroup -.-> linux/tee("Output Multiplexing") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") subgraph Lab Skills linux/echo -.-> lab-558866{{"Comment vérifier si un paramètre de panique du noyau (kernel panic) est actif dans Linux"}} linux/ls -.-> lab-558866{{"Comment vérifier si un paramètre de panique du noyau (kernel panic) est actif dans Linux"}} linux/cat -.-> lab-558866{{"Comment vérifier si un paramètre de panique du noyau (kernel panic) est actif dans Linux"}} linux/tee -.-> lab-558866{{"Comment vérifier si un paramètre de panique du noyau (kernel panic) est actif dans Linux"}} linux/service -.-> lab-558866{{"Comment vérifier si un paramètre de panique du noyau (kernel panic) est actif dans Linux"}} linux/sudo -.-> lab-558866{{"Comment vérifier si un paramètre de panique du noyau (kernel panic) est actif dans Linux"}} linux/env -.-> lab-558866{{"Comment vérifier si un paramètre de panique du noyau (kernel panic) est actif dans Linux"}} end

Vérifier le paramètre de panique avec sysctl kernel.panic

Dans cette étape, nous allons découvrir comment vérifier le paramètre de panique du noyau (kernel) à l'aide de la commande sysctl. Le paramètre kernel.panic détermine le comportement du noyau en cas de panique. Une panique du noyau (kernel panic) est une erreur critique à partir de laquelle le système ne peut pas se rétablir, entraînant souvent une interruption ou un redémarrage du système.

La commande sysctl est un outil puissant pour lire et modifier les paramètres du noyau à l'exécution. Ces paramètres contrôlent divers aspects du comportement du système.

Pour vérifier la valeur actuelle du paramètre kernel.panic, ouvrez votre terminal et tapez la commande suivante :

sysctl kernel.panic

Cette commande affichera la valeur actuelle du paramètre kernel.panic. Vous devriez voir une sortie similaire à celle-ci :

kernel.panic = 0

La valeur 0 indique que le système ne redémarrera pas automatiquement après une panique du noyau. Si la valeur est supérieure à 0, elle représente le nombre de secondes que le noyau attendra avant de redémarrer automatiquement.

Maintenant, essayons de changer la valeur de kernel.panic. Pour la définir sur 10 secondes, utilisez la commande suivante avec sudo :

sudo sysctl kernel.panic=10

Vous serez invité à saisir votre mot de passe. Après l'avoir saisi, la commande définira la valeur de kernel.panic sur 10.

Pour vérifier que le changement a été effectué avec succès, exécutez à nouveau la commande sysctl :

sysctl kernel.panic

Vous devriez maintenant voir :

kernel.panic = 10

Cela confirme que le paramètre kernel.panic a été modifié avec succès.

Il est important de noter que les modifications apportées avec sysctl sont temporaires et seront perdues après un redémarrage. Pour rendre les modifications permanentes, vous devez modifier le fichier /etc/sysctl.conf, que nous aborderons dans l'étape suivante.

Vérifier la configuration de sysctl avec cat /etc/sysctl.conf

Dans l'étape précédente, nous avons appris à modifier temporairement le paramètre kernel.panic à l'aide de la commande sysctl. Cependant, ces modifications ne sont pas persistantes et seront perdues après un redémarrage. Pour rendre les modifications permanentes, nous devons modifier le fichier /etc/sysctl.conf.

Le fichier /etc/sysctl.conf est le fichier de configuration principal pour sysctl. Il contient une liste de paramètres du noyau (kernel) et leurs valeurs souhaitées. Lorsque le système démarre, il lit ce fichier et applique les paramètres spécifiés.

Pour afficher le contenu du fichier /etc/sysctl.conf, ouvrez votre terminal et utilisez la commande cat :

cat /etc/sysctl.conf

Cette commande affichera le contenu du fichier. Vous pourriez voir des commentaires (lignes commençant par #) et des paramètres existants.

## /etc/sysctl.conf - Configuration file for setting system variables
## See /etc/sysctl.d/ for additional system variables.
## See sysctl.conf (5) for more information.

Maintenant, ajoutons notre paramètre kernel.panic à ce fichier. Nous utiliserons la commande echo pour ajouter le paramètre à la fin du fichier.

echo "kernel.panic = 10" | sudo tee -a /etc/sysctl.conf

Voici une explication de la commande :

  • echo "kernel.panic = 10" : Cette partie crée le texte que nous voulons ajouter au fichier.
  • | : C'est un tuyau (pipe) qui prend la sortie de la commande echo et l'envoie en entrée à la commande tee.
  • sudo tee -a /etc/sysctl.conf : La commande tee lit depuis l'entrée standard et écrit à la fois sur la sortie standard et dans un ou plusieurs fichiers.
    • sudo : Permet d'écrire dans un fichier qui nécessite des privilèges d'administrateur.
    • -a : Ajoute le texte à la fin du fichier au lieu de le remplacer.
    • /etc/sysctl.conf : Le fichier que nous voulons modifier.

Après avoir exécuté cette commande, vérifions que le paramètre a été ajouté au fichier. Utilisez à nouveau la commande cat :

cat /etc/sysctl.conf

Vous devriez maintenant voir la ligne kernel.panic = 10 à la fin du fichier.

## /etc/sysctl.conf - Configuration file for setting system variables
## See /etc/sysctl.d/ for additional system variables.
## See sysctl.conf (5) for more information.
kernel.panic = 10

Pour appliquer les modifications, vous pouvez soit redémarrer le système, soit exécuter la commande suivante :

sudo sysctl -p

Cette commande indique à sysctl de lire le fichier /etc/sysctl.conf et d'appliquer les paramètres.

Maintenant, le paramètre kernel.panic sera persistant après les redémarrages.

Inspecter les paramètres du noyau dans /proc/sys/kernel

Dans cette étape, nous allons découvrir une autre façon d'afficher les paramètres du noyau (kernel) : le répertoire /proc/sys/kernel. Ce répertoire offre une interface de système de fichiers virtuel pour les variables du noyau. Chaque fichier dans ce répertoire représente un paramètre du noyau.

Le répertoire /proc est un répertoire spécial dans Linux qui fournit des informations sur les processus en cours d'exécution et le noyau. C'est un système de fichiers virtuel, ce qui signifie que les fichiers et les répertoires qu'il contient n'existent pas réellement sur le disque. Au lieu de cela, ils sont créés dynamiquement par le noyau lors de l'accès.

Pour lister les fichiers dans le répertoire /proc/sys/kernel, ouvrez votre terminal et utilisez la commande ls :

ls /proc/sys/kernel

Cette commande affichera une liste de fichiers, chacun représentant un paramètre du noyau. Vous verrez des fichiers tels que hostname, domainname, osrelease, version, et bien d'autres.

acpi_video_flags  ctrl-alt-del  dmesg               hostname       modules_disabled  osrelease  powersave-nap  pty  random  realtime-max-usleep  shmmax  shmall  shmmni  sysrq  tainted  threads-max  unknown_nmi_panic  version  yama

Pour afficher la valeur d'un paramètre de noyau spécifique, vous pouvez utiliser la commande cat sur le fichier correspondant. Par exemple, pour afficher le nom d'hôte du système, utilisez la commande suivante :

cat /proc/sys/kernel/hostname

Cela affichera le nom d'hôte actuel du système.

labex

De même, pour afficher la version du noyau, utilisez la commande suivante :

cat /proc/sys/kernel/osrelease

Cela affichera la version du noyau.

5.15.0-76-generic

Vous pouvez également utiliser la commande sysctl pour afficher ces paramètres, comme nous l'avons vu dans la première étape. Par exemple, la commande suivante est équivalente à cat /proc/sys/kernel/hostname :

sysctl kernel.hostname

Le répertoire /proc/sys/kernel fournit une grande quantité d'informations sur la configuration et l'état du noyau. C'est une ressource précieuse pour les administrateurs système et les développeurs qui ont besoin de comprendre et de surveiller le comportement du système.

Il est important de noter que bien que vous puissiez afficher ces fichiers, vous avez généralement besoin de privilèges root pour les modifier directement. Cependant, l'utilisation de sysctl est la méthode préférée pour modifier les paramètres du noyau, car elle offre une interface plus contrôlée et cohérente.

Résumé

Dans ce laboratoire (lab), nous avons exploré comment vérifier et modifier temporairement le paramètre kernel.panic dans Linux à l'aide de la commande sysctl. Nous avons appris que kernel.panic détermine le comportement du noyau (kernel) en cas d'erreur critique, une valeur de 0 indiquant qu'il n'y a pas de redémarrage automatique et une valeur supérieure à 0 représentant le délai en secondes avant le redémarrage.

Nous avons utilisé sysctl kernel.panic pour afficher le paramètre actuel et sudo sysctl kernel.panic=10 pour le modifier temporairement. Le laboratoire a également souligné que les modifications apportées avec sysctl ne sont pas persistantes après les redémarrages et nécessitent la modification du fichier /etc/sysctl.conf pour une configuration permanente, ce qui sera abordé dans les étapes suivantes.