Evitando el botonazo – SysRq

En algunas ocasiones nos encontramos que un servidor se ha quedado colgado y no responde al Ctrl + Alt + Supr.

Antes de dar el botonazo nos queda un último recurso que es la función Sysrq, la cual se encuentra en la tecla de «Imprimir pantalla», («Impr Pant», «PrtSrc, «Pet Sis» u otras variantes.)

Pulsando la combinación de teclas ‘Alt + SysRq + (tecla_comando)’ pasaremos al kenel una llamada con mayor prioridad que ninguna otra a la que responderá independientemente de lo que esté haciendo siempre que no esté totalmente colgado.

Para poder obtener una consola que nos permita recuperar el sistema o, en caso de que esto no sea posible, reiniciar el sistema de la forma más segura, el orden de los comandos que pasamos es importante.

Por tanto, cuando tenemos un sistema frito, ejecutaremos por orden mientras mantenemos pulsado Alt + Sysrq:

  • R – (Raw) Cambia el teclado del modo raw al modo XLATE. Si el servidor X se ha quedado colgado podremos recuperar una consola con Ctrl + Alt + F1.
  • E – (End) Manda un SIGTERM a todos los procesos, excepto para init. Si no devuelve una consola, podemos probar:
  • I – (Kill) Manda un SIGKILL a todos los procesos, excepto para init. Si en este punto no conseguimos un terminal, tendremos que reiniciar, por ello primero hacemos un:
  • S – (Sync) Intentará sincronizar todos los sistemas de ficheros montados. Evitaremos que al arrancar tenga que hacer un chequeo del sistema de ficheros.
  • U – (Umount) Desmontará todos los sistemas de ficheros.
  • B – (Reboot) Reiniciará el sistema.

Existen algunos mnemotécnicos para recordar el orden de los comandos como son:

«Raising Skinny Elephants Is Utterly Boring»

o el castizo:

«REInicia SUBnormal»

Para que el núcleo conteste a estas llamadas, el SysRq debe estar habilitado y podremos ver si es así en /proc:

# cat  /proc/sys/kernel/sysrq
0

En este caso no estaría habilitado con lo que lo habilitaríamos mediante el sysctl:

# echo "## Enable SysRq" >> /etc/sysctl.conf
# echo "kernel.sysrq = 1" >>  /etc/sysctl.conf
# sysctl -p

tags: ,
Escrito en kernel por Ignacio Vazquez

Follow comments via the RSS Feed | Deja un comentario | Trackback URL

2 Comments to "Evitando el botonazo – SysRq"

  1. Gladys wrote:

    Thanks for the share! Very useful info, looking to communicate!

  2. Fran wrote:

    Te falta la C, con la que se fuerza un volcado de Core, necesario por si tenemos un problema y queremos realizar un diagnóstico.

    Saludos!

Leave Your Comment

 
desdelaconsola.es