Cómo comprobar si una configuración de kernel panic está activa en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo verificar si una configuración de pánico del kernel (kernel panic) está activa en Linux. El laboratorio lo guía a través del uso del comando sysctl para inspeccionar y modificar temporalmente la configuración kernel.panic, que determina el comportamiento del sistema después de un error crítico.

También explorará cómo verificar la configuración de sysctl examinando el archivo /etc/sysctl.conf e inspeccionar los parámetros del kernel en el directorio /proc/sys/kernel para entender cómo estas configuraciones influyen en el comportamiento del sistema.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) 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/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{{"Cómo comprobar si una configuración de kernel panic está activa en Linux"}} linux/ls -.-> lab-558866{{"Cómo comprobar si una configuración de kernel panic está activa en Linux"}} linux/cat -.-> lab-558866{{"Cómo comprobar si una configuración de kernel panic está activa en Linux"}} linux/tee -.-> lab-558866{{"Cómo comprobar si una configuración de kernel panic está activa en Linux"}} linux/service -.-> lab-558866{{"Cómo comprobar si una configuración de kernel panic está activa en Linux"}} linux/sudo -.-> lab-558866{{"Cómo comprobar si una configuración de kernel panic está activa en Linux"}} linux/env -.-> lab-558866{{"Cómo comprobar si una configuración de kernel panic está activa en Linux"}} end

Verificar la configuración de pánico con sysctl kernel.panic

En este paso, exploraremos cómo verificar la configuración de pánico del kernel (kernel panic) utilizando el comando sysctl. La configuración kernel.panic determina cómo se comporta el kernel cuando se produce un pánico. Un pánico del kernel es un error crítico del que el sistema no puede recuperarse, lo que a menudo conduce a un apagado o reinicio del sistema.

El comando sysctl es una herramienta poderosa para leer y modificar parámetros del kernel en tiempo de ejecución. Estos parámetros controlan varios aspectos del comportamiento del sistema.

Para verificar el valor actual de la configuración kernel.panic, abra su terminal y escriba el siguiente comando:

sysctl kernel.panic

Este comando mostrará el valor actual de la configuración kernel.panic. Debería ver una salida similar a esta:

kernel.panic = 0

El valor 0 indica que el sistema no se reiniciará automáticamente después de un pánico del kernel. Si el valor es mayor que 0, representa el número de segundos que el kernel esperará antes de reiniciarse automáticamente.

Ahora, intentemos cambiar el valor de kernel.panic. Para establecerlo en 10 segundos, utilice el siguiente comando con sudo:

sudo sysctl kernel.panic=10

Se le pedirá su contraseña. Después de ingresarla, el comando establecerá el valor de kernel.panic en 10.

Para verificar que el cambio se realizó correctamente, ejecute el comando sysctl nuevamente:

sysctl kernel.panic

Ahora debería ver:

kernel.panic = 10

Esto confirma que la configuración kernel.panic se ha modificado correctamente.

Es importante tener en cuenta que los cambios realizados con sysctl son temporales y se perderán después de un reinicio. Para hacer los cambios permanentes, debe modificar el archivo /etc/sysctl.conf, que cubriremos en el siguiente paso.

Verificar la configuración de sysctl con cat /etc/sysctl.conf

En el paso anterior, aprendimos cómo cambiar temporalmente la configuración kernel.panic utilizando el comando sysctl. Sin embargo, estos cambios no son persistentes y se perderán después de un reinicio. Para hacer los cambios permanentes, necesitamos modificar el archivo /etc/sysctl.conf.

El archivo /etc/sysctl.conf es el archivo de configuración principal para sysctl. Contiene una lista de parámetros del kernel y sus valores deseados. Cuando el sistema se inicia, lee este archivo y aplica las configuraciones especificadas.

Para ver el contenido del archivo /etc/sysctl.conf, abra su terminal y use el comando cat:

cat /etc/sysctl.conf

Este comando mostrará el contenido del archivo. Puede ver algunos comentarios (líneas que comienzan con #) y algunas configuraciones existentes.

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

Ahora, agreguemos nuestra configuración kernel.panic a este archivo. Usaremos el comando echo para anexar la configuración al final del archivo.

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

A continuación, se detalla el comando:

  • echo "kernel.panic = 10": Esta parte crea el texto que queremos agregar al archivo.
  • |: Este es un pipe (tubería), que toma la salida del comando echo y la envía como entrada al comando tee.
  • sudo tee -a /etc/sysctl.conf: El comando tee lee desde la entrada estándar y escribe tanto en la salida estándar como en uno o más archivos.
    • sudo: Nos permite escribir en un archivo que requiere privilegios de administrador.
    • -a: Anexa el texto al final del archivo en lugar de sobrescribirlo.
    • /etc/sysctl.conf: El archivo que queremos modificar.

Después de ejecutar este comando, verifiquemos que la configuración se haya agregado al archivo. Use el comando cat nuevamente:

cat /etc/sysctl.conf

Ahora debería ver la línea kernel.panic = 10 al final del archivo.

## /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

Para aplicar los cambios, puede reiniciar el sistema o ejecutar el siguiente comando:

sudo sysctl -p

Este comando le dice a sysctl que lea el archivo /etc/sysctl.conf y aplique las configuraciones.

Ahora, la configuración kernel.panic será persistente a través de los reinicios.

Inspeccionar los parámetros del kernel en /proc/sys/kernel

En este paso, exploraremos otra forma de ver los parámetros del kernel: el directorio /proc/sys/kernel. Este directorio proporciona una interfaz de sistema de archivos virtual para las variables del kernel. Cada archivo en este directorio representa un parámetro del kernel.

El directorio /proc es un directorio especial en Linux que proporciona información sobre los procesos en ejecución y el kernel. Es un sistema de archivos virtual, lo que significa que los archivos y directorios dentro de él no existen realmente en el disco. En cambio, son creados dinámicamente por el kernel cuando se accede a ellos.

Para listar los archivos en el directorio /proc/sys/kernel, abra su terminal y use el comando ls:

ls /proc/sys/kernel

Este comando mostrará una lista de archivos, cada uno de los cuales representa un parámetro del kernel. Verá archivos como hostname, domainname, osrelease, version y muchos otros.

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

Para ver el valor de un parámetro específico del kernel, puede usar el comando cat en el archivo correspondiente. Por ejemplo, para ver el nombre de host del sistema, use el siguiente comando:

cat /proc/sys/kernel/hostname

Esto mostrará el nombre de host actual del sistema.

labex

De manera similar, para ver la versión del kernel, use el siguiente comando:

cat /proc/sys/kernel/osrelease

Esto mostrará la versión del kernel.

5.15.0-76-generic

También puede usar el comando sysctl para ver estos parámetros, como vimos en el primer paso. Por ejemplo, el siguiente comando es equivalente a cat /proc/sys/kernel/hostname:

sysctl kernel.hostname

El directorio /proc/sys/kernel proporciona una gran cantidad de información sobre la configuración y el estado del kernel. Es un recurso valioso para los administradores de sistemas y los desarrolladores que necesitan entender y monitorear el comportamiento del sistema.

Es importante tener en cuenta que aunque puede ver estos archivos, normalmente necesita privilegios de root para modificarlos directamente. Sin embargo, usar sysctl es la forma preferida de modificar los parámetros del kernel, ya que proporciona una interfaz más controlada y consistente.

Resumen

En este laboratorio (lab), exploramos cómo verificar y modificar temporalmente la configuración kernel.panic en Linux utilizando el comando sysctl. Aprendimos que kernel.panic determina el comportamiento del kernel al encontrar un error crítico, donde un valor de 0 indica que no se reiniciará automáticamente y un valor mayor que 0 representa el retraso en segundos antes de reiniciar.

Usamos sysctl kernel.panic para ver la configuración actual y sudo sysctl kernel.panic=10 para cambiarla temporalmente. El laboratorio también destacó que los cambios realizados con sysctl no son persistentes después de un reinicio y requieren la modificación del archivo /etc/sysctl.conf para una configuración permanente, lo cual se abordará en pasos posteriores.