Publi

REISUB, ¿qué es? ¿para qué sirve? ¿cómo hacerlo de forma remota o en script? y más llamadas a Alt+Sysrq

yJl7OB3sSpOdEIpHhZhd_DSC_1929_1_rEn muchos sitios, podemos ver esta palabra clave, para muchos RESUIB para otros RESIUB y normalmente REISUB. Y sirve para reiniciar el sistema Linux de forma segura después de que el sistema se congele; de la siguiente forma: Alt+Imprimir Pantalla + R,E,I,S,U,B (no hace falta soltar las teclas Alt + Imprimir pantalla). La tecla Imprimir pantalla podemos encontrarla como SysReq (System Request) o PetSis (Petición al sistema). Cada letra representa una acción del kernel:

  • R (Devuelve el control al teclado unRaw)
  • E (Termina todos los procesos tErm)
  • I (Mata los procesos que queden vivos full kIll)
  • S (Sincroniza los discos Sync)
  • U (Monta todos los sistemas de archivos como sólo lectura Umount)
  • B (Reinicia el ordenador Boot)

Es muy recomendable dejar un poco de tiempo entre pulsación y pulsación, uno o dos segundos, ya que cada acción no es inmediata, puede que haya muchos procesos, muchos dispositivos, que haya información que volcar en ellos, etc; y todo no sea inmediato. Sobre todo, es muy importante el sincronizado de discos y montarlos como sólo lectura.

Aunque en realidad todo es importante, por ejemplo E, para terminar los procesos, si estamos corriendo algún proceso importante cuyo estado deba ser salvado (muchos programas salvan su estado al cerrarse), debemos terminarlo correctamente (el sistema puede estar aparentemente colgado, pero algunos procesos a nivel interno pueden seguir funcionando), luego, con I, por ejemplo, queremos evitar que haya procesos que quieran modificar archivos, o incluso procesos que quieran impedir que aparquemos los discos; S para volcar a disco toda la información que no haya sido guardada todavía y esté en buffers de datos repartidos por el sistema; U, para que nadie pueda escribir en el disco, así evitamos incoherencias en disco de última hora antes de reiniciar el sistema.

Parece algo difícil de recordar en un momento de desesperación cuando todo falla, ¿no? Para los que hablan inglés, hay dos reglas nemotécnicas:

  • BUSIER (más ocupado), al revés. Aunque a lo mejor se nos traba alguna letra.
  • Raising Elephants Is So Utterly Boring (Criar elefantes es taaaaaan aburrido (no he encontrado otra forma de traducir el «utterly» que suene bien en español).
  • Reboot Even If System Utterly Broken (Reiniciar incluso si el sistema está completamente roto)

Pero si queremos en español, algunos prefieren decir REInicia SUBnormal; con ese afán que tenemos todos de meternos con los demás.

Pero, tenemos muchas más opciones, si queremos podemos ir a un terminal de texto (Por ejemplo Control+Alt+[F1..F8] en la mayoría de distribuciones, podemos controlar cuántas terminales se pueden abrir, pero eso es otro tema, la interfaz gráfica suele estar en la 7, 8 u 11, aunque puedes tenerla en otro lado). En esa terminal pulsas Alt+Imprimir pantalla+H (más abajo lo hacemos con comandos) y encontrarás una ayuda con las acciones que puedes realizar. Ten cuidado, suelen ser opciones de depuración o de emergencia, así que, tú mism@.

Bien, si tenemos acceso físico al ordenador, no hay problema, pero y si estamos enchufados en otra máquina ? Todo está en el fichero especial /proc/sysrq-trigger.

¡¡ REISUB no funciona !!

Puede que no funcione… que haya pasado algo mucho más grave, por ejemplo un fallo de hardware (a mi me pasó con una CPU que sufrió un calentón, o incluso polvo en las conexiones de la RAM), puede que pase algo tan sumamente grave que el sistema no pueda hacer nada y directamente se cuelgue. Aunque los linuxeros siempre decimos que Linux no se cuelga, a veces lo hace, como toda creación humana.

También ha podido suceder un kernel panic, algo así como una pantalla azul de Windows, y puede suceder cuando hay un fallo de hardware (y el sistema ha podido reaccionar), un fallo del kernel (que, aunque mucha gente se toma en serio que no falle, en ocasiones, falla; o puede que haya fallado un módulo, y cualquiera puede hacer un módulo, un driver…), alguna aplicación con privilegios ha tocado donde no debía, en fin, en general son problemas irreparables que impiden que el ordenador siga su curso y tenemos que reiniciar. En ocasiones nos mostrarán en pantalla o en algún log un volcado de memoria o algún mensaje que ayude a un desarrollador o al usuario a saber qué ha pasado. Generalmente el código que gestiona estas pantallas, termina con un bucle infinito y puede que con algún led parpadeando.

Podemos pulsar Alt+Imprimir pantalla+c … ¡ no lo hagas ! ¡ no lo hagas ! porque fuerzas un crash, vamos fuerzas que el sistema se cuelgue. Y, ¿para qué queremos hacer esto? Por ejemplo cuando hayamos metido la pata hasta el más lejano confín y vaya a borrarse todo el disco (si usas un portátil y lo desenchufas, no conseguirás nada, tirarás de batería, y si pulsas el botón de apagado tendrás que hacerlo durante 4segundos, y puede que ese tiempo sea mortal).

También puede ser que el proceso init (el padre de todos los procesos), haya tenido un fallo grave (seguramente ha sido cosa del programador) y el kernel se ha cargado el proceso. De todas formas, esto no he tenido el honor de probarlo nunca.

Obteniendo información de los procesos

Enviando a /proc/sysrq-trigger (como root) la letra correspondiente a la acción del kernel vale. Empezaremos pidiendo ayuda:

root # echo «h» > /proc/sysrq-trigger

root # dmesg | tail

…. # Nos dirá muchas cosas, sólo nos interesa la última línea
SysRq : HELP : loglevel0-8 reBoot tErm Full kIll saK showMem Nice powerOff showPc show-all-timers(Q) unRaw Sync showTasks Unmount shoW-blocked-tasks

Vemos cómo el kernel a través de dmesg se comunicará con nosotros. Cada letra mayúscula nos indicará una acción diferente, empezaremos obteniendo información sobre la memoria:

root # echo «m» > /proc/sysrq-trigger

root # dmesg | tail -n 35

O información sobre tareas bloqueadas:

root # echo «w» > /proc/sysrq-trigger

root # dmesg

Más acciones

Incluso podemos lanzar el OOM killer con la siguiente línea:

root # echo «f» > /proc/sysrq-trigger

Terminar todos los procesos (igual que comentábamos arriba del todo):

root # echo «e» > /proc/sysrq-trigger

Cambia el nivel de información de dmesg (del 0 al 8):

root # echo 5 > /proc/sysrq-trigger

Para enviar un REISUB es algo más elaborado:

root # nohup bash -c «for key in r e i s u b; do echo \$key > /proc/sysrq-trigger; sleep 4; done»

Aunque tendremos que asegurarnos de que las tareas estén muertas, ya que, nuestra conexión ssh, o nuestro terminal, o incluso bash, se mueren al mandar un E o un I al kernel (dando igual el nohup). Por otra parte, la R la podemos quitar, ya que vale para devolver el control al teclado, y estamos desde un equipo remoto.

Seguridad

Pero tanto por nosotros mismos (debemos de protegernos de meter la pata), como los posibles usuarios del ordenador, tal vez no nos interese que puedan pulsar en teclado alguna combinación de teclas que comprometa al kernel. Para ello, tenemos  /proc/sys/kernel/sysrq o directamente el comando sysctl del cual modificamos la propiedad kernel.sysrq; lo haremos de la siguiente manera:

root # sysctl kernel.sysrq=0 # Para desactivar Alt+SysRq

root # sysctl kernel.sysrq=1 # Para activarlo

Se pueden activar algunos comandos sólo, dependiendo del número que se indique. Si el número que ponemos aquí es mayor que uno, consideraremos que el valor es una máscara de bits que activa o desactiva determinadas acciones. Y si sumamos los números que vamos obteniendo, generaremos un valor que contendrá todas las acciones que hemos sumado:

  • 2 – Controlar el nivel de información en pantalla de estas cosas
  • 4 – Control del teclado
  • 8 – Depuración y volcados de memoria
  • 16 – Sincronización de discos
  • 32 – Montaje de discos como sólo lectura
  • 64 – Finalización de procesos: terminar, matar, OOM Kill
  • 128 – Reiniciar o apagar
  • 256 – Priorización de tareas

Actualización 23/11/2012 : Error tipográfico
Actualización 30/01/2016 : He completado un poco el post en general.
Actualización 03/02/2016 : ¡Foto! Buscando fotos de gente ocupada, por lo de BUSIER…

Foto principal: Ana Dzubinska

También podría interesarte....

There are 16 comments left Ir a comentario

  1. Pingback: Bitacoras.com /

  2. Pingback: BlogESfera.com /

  3. Jonathan Sand. /
    Usando Google Chrome Google Chrome 32.0.1700.72 en Windows Windows NT

    Excelente no conocida este truco

    1. Gaspar Fernández / Post Author
      Usando Mozilla Firefox Mozilla Firefox 50.0 en Ubuntu Linux Ubuntu Linux

      ¡ Gracias ! Cuidado, en muchas distribuciones viene desactivado, por eso de que cualquiera con acceso físico al ordenador podría reiniciarlo…

  4. JVare /
    Usando Mozilla Firefox Mozilla Firefox 50.0 en Ubuntu Linux Ubuntu Linux

    En alguna ocasión me ha sucedido. El problema es recordarlo en el momento que se necesita.
    Lo que si he utilizado varias veces es lo de abrir un terminal con Ctr alt F1, porque el modo gráfico se ha quedado completamente congelado, y de esa forma poder reiniciar ordenadamente.

  5. The Warriors Vest /
    Usando Google Chrome Google Chrome 120.0.0.0 en Windows Windows NT

    Excellent and decent post. It is brilliant blog. I like the way you express information to us. Thanks for such post and please keep it up.

  6. Chicago Bulls Varsity Jacket /
    Usando Google Chrome Google Chrome 120.0.0.0 en Windows Windows NT

    This is an excellent post I seen thanks to share it. It is really what I wanted to see hope in future you will continue for sharing such a excellent post.

  7. Usando Google Chrome Google Chrome 120.0.0.0 en Windows Windows NT

    You have made some good points here. I looked on the internet for the issue as well as found most people will certainly accompany with your website.

  8. slope /
    Usando Google Chrome Google Chrome 120.0.0.0 en Windows Windows NT

    Very good and respectable post. Excellent blog. I like how you provide facts to us. Please continue writing posts like this; I appreciate it.

  9. RabBeats /
    Usando Google Chrome Google Chrome 120.0.0.0 en Windows Windows NT

    While electric smoke vapes Products are often considered a less harmful alternative to traditional smoking, they are not without risks. The long-term health effects of vaping are still being studied, and some concerns include nicotine addiction, lung issues, and potential exposure to harmful chemicals.

  10. bankrupcy near me /
    Usando Google Chrome Google Chrome 117.0.0.0 en Windows Windows NT

    Thanks for sharing this informative blog! bankrupcy near me

  11. Elizabeth Strange /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    Thanks to send my shipment on time. customer service is great. Also, the jacket is very impressive in every aspect. New Edition Jacket

  12. Antonio Williams /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    Once i purchased this Beth Dutton Poncho Coat and I am satisfied from them.

  13. Emerald of Katong /
    Usando Mozilla Firefox Mozilla Firefox 123.0 en Mac OS X Mac OS X 10

    Nestled in the bustling neighborhood of Katong, the renowned Emerald of Katong condominium boasts a perfect combination of opulent living and the cultural heritage of Singapore. This exceptional residential complex is widely praised for its lavish facilities and stunning architecture, as well as its unbeatable location surrounded by a plethora of shopping destinations and a diverse selection of culinary treasures.

  14. Minecraft APK /
    Usando Google Chrome Google Chrome 122.0.0.0 en Windows Windows NT

    Everything is very open with a precise clarification of the issues. It was really informative. Your site is very helpful. Many thanks for sharing! https://minecraftapkss.com/

  15. Minecraft APK /
    Usando Google Chrome Google Chrome 122.0.0.0 en Windows Windows NT

    I’d like to thank you for the efforts you’ve put in penning this site. I’m hoping to view the same high-grade content by you in the future as well. In truth, your creative writing abilities has motivated me to get my own, personal blog now 😉 https://minecraftapkss.com/

Leave a Reply to JVare Cancle Reply