HowTo

Linux y la magia de SysRq

La tecla SysRq tiene su uso después de todo. Quien iba a pensar que era la tecla mas importante para cualquier administrador de sistemas. Descubre como SysRq puede sacarte de aprietos en Linux.

La tecla SysRq tiene su uso después de todo. Quien iba a pensar que era la tecla mas importante para cualquier administrador de sistemas. Descubre como SysRq puede sacarte de aprietos en Linux.
La tecla mas importare para los sysadmins SysRq en el laptop Lenovo 7410

En ocasiones cuando se nos cuelga nuestro laptop o estación de trabajo ni Ctrl + Alt + Backspace ni Ctrl + Alt + Supr nos funciona muchos recurren a un ‘Hard Reboot’. Muchos desconocen de la magia de SysRq que en combinación con Linux Fedora puede hacer Sync de discos y enseguida mandar a reiniciar el sistema, de hecho puede hacer un montón de cosas mas.

Lo maravilloso de la tecla SysRq es que sirve para crear combinaciones a los que el Kernel de Linux no responde sin importar el resto de cosas que esten pasando o cuando ocupado este (con sus excepciones).

Para habilitar esta funcionalidad casi mágica solo debemos editar el sysctl.config dentro del directorio /etc y agregar la linea:
kernel.sysrq = 1

Si estas corriendo un Kernel personalizado, asegurate de habilitar “Magic SysRq key (CONFIG_MAGIC_SYSRQ)” y luego editar tu sysctl.config. El estado de esta funcionalidad puede ser revisada ejecutando:
cat /proc/sys/kernel/sysrq
1

Solo arrojara dos resultados 0 o 1 que indican deshabilitad o habilitado respectivamente.

Algunos teclados no tienen una tecla separada para SysRq, en este caso puedes usar la tecla que dice “Print“. Bajo un ambiente gráfico como KDE, Gnome o XFCE la combinación “Alt + PrintScrn/SysRq + Tecla” puede que resulte en una captura de pantalla. Para evitar que SysRq resulte en esto debemos siembre usar la tecla Ctrl al inicio de nuestra combinación de teclas, por lo que el ejemplo anterior quedaría “Ctrl + Alt + PrintScrn/SysRq + Tecla” donde ‘Tecla‘ es cualquiera de las siguientes opciones, recuerda que cada tecla tiene funciones distintas:

  • ‘r’ – Cambia el teclado del modo raw al modo XLATE.
  • ‘k’ – Mata todos los programas en la consola virtual actual.
  • ‘b’ – Reiniciara inmediatamente Fedora sin sincronizar o desmontar sus discos.
  • ‘o’ – Apagara su sistema (si esta configurado y lo soporta).
  • ‘s’ – Intentara sincronizar todos los sistemas de ficheros montados.
  • ‘u’ – Intentara montar de nuevo todos los sistemas de archivos montados como solo lectura.
  • ‘p’ – Volcara los registros y banderas actuales a su consola.
  • ‘t’ – Volcara una lista de las tareas en ejecución y su información a su consola.
  • ‘m’ – Volcara la información actual de la memoria a su consola.
  • ’0′-’9′ – Establece el nivel de información en consola, controlando los mensajes del núcleo que se mandaron a la consola. (’0′, por ejemplo haría que solo los mensajes de emergencia como PANIC u OOPS salieran en su consola.)
  • ‘e’ – Enviá un SIGTERM a todos los procesos, excepto para init.
  • ‘i’ – Enviá un SIGKILL a todos los procesos, excepto para init.
  • ‘l’ – Enviá un SIGKILL a todos los procesos, INCLUYENDO init. (Fedora ya no sera operativo tras esto hasta que reinicie).

 

Los usos mas comunes son el de reiniciar un sistema que ya no responde pero temes que si le haces un hard reboot resulte en data corrupta en el disco duro es usarlo en combinación R, k, S, U, e, l esta secuencia de SysRq combos nos va a permitir salir del servidor X o cualquier programa svgalib colgado; Tambien se hace cargo de procesos que no le dejan cambiar de consola. ‘S’incronizar y luego ‘U’mountar los sistemas de ficheros. Seguidamente con ‘e’ intentamos parar todos los procesos por las buenas (excepto init) y finalmente nos encargamos de los que están colgados con ‘l’, haciéndole un kill a todo. Luego de esto podemos hacer un hard reboot. En la practica este SysRq Combo puede demorar.

EL sincronizar los discos es de suma importancia cuando nuestro linux (en mi caso Fedora) esta bloqueado para reducir el riesgo de corrupción de data. El comando sync habrá terminado cuando vea en su pantalla las palabras “OK” y “DONE”.

Otro buen uso es el de establecer el nivel de información que la consola nos va a dar, bien sea para eliminar esa cantidad de mensajes de error del kernel que no quieres ver en la consola o por el contrario para verlos mas detallados.

6 Comments

  1. El título es engañoso da entender que esto solo funciona en Fedora cuando esto es falso :-/ …

    • Lo titule con fedora por que hice las pruebas con fedora. en teoria funciona con cualquier distro.

  2. Alex

    Fenomenal, gracias por el aporte compi :)

  3. Excelente!! Gracias por el dato, de verdad que no sabia esto!! xD… Y bueno si, más engañoso el titulo y bueno xD… Pero obviamente al usarlo en fedora funciona en cualquier otra distro gnu/linux

    • Si, debería de funcionar en cualquier distro, lo distinto es que este o no habilitado. Eso se puede ver en /proc/sys/kernel/sysrq como mencione antes.

  4. jorgito

    El título no es engañoso… específico sí, pero engañoso no. Engañoso fuese si en alguna parte del texto resara “NO FUNCIONA EN OTRA DISTRIBUCIÓN QUE NO SEA FEDORA”… ¡ahí estaría engañando!. Háganse un favor, lean, lean… y cuando crean que leyeron, lean de nuevo y analizen un poco.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

La moderación de comentarios está activada. Su comentario podría tardar cierto tiempo en aparecer.