El tip: Magic SysRq key o qué hacer cuando Linux se queda colgado
Septiembre 17, 2007 · Imprime esta entrada
Linux nunca se queda colgado, es la frase favorita de los defensores del pingüino. Hace poco en el trabajo empezamos a tener algunos problemas con uno de los servidores el cual dejaba de responder de repente, sólo respondía al ping pero no se podía acceder en remoto ni en consola. Lo mas extraño es que al reiniciar el servidor no había absolutamente nada en los logs que indicara la causa del fallo, por eso sólo podíamos formular teorías sobre algún fallo en hardware o en la conexión NFS. Buscando causas y soluciones fue como conocí Magic SysRq key.
Magic SysRq key es una combinación de teclas en el kernel de Linux que permite al usuario ejecutar varios comandos de bajo nivel sin importar el estado del sistema. Su uso mas frecuente es para recuperar el sistema en caso de que deje de responder o para reiniciarlo sin corromper el sistema de ficheros (filesystem) pero también puede utilizarse para restaurar el sistema o realizar un volcado de memoria del kernel (core dump). Para poder usar esto se debe habilitar la opción CONFIG_MAGIC_SYSRQ en el kernel antes de compilarlo.
Así que cuando nos falle el servidor y se quede colgado por algún motivo en lugar de darle botonazo presionamos alt+SysRq + la opción que debemos activar según lo que querramos hacer. Por ejemplo si quisiéramos reiniciar el servidor de forma segura necesitaríamos matar los procesos y sincronizar los discos entre otras cosas así que ejecutaríamos la siguiente secuencia conocida como REISUB:
Alt + SysRq + R devuelve el control del teclado.
Alt + SysRq + E termina (term) todos los procesos (excepto init).
Alt + SysRq + I mata (kill) todos los procesos (excepto init).
Alt + SysRq + S sincroniza los discos.
Alt + SysRq + U remonta todos los sistemas de ficheros en modo lectura.
Alt + SysRq + B reinicia la máquina.
También podríamos intentar matar todos los procesos excepto init para ver si así se recupera el sistema, antes siempre es aconsejable sincronizar los discos. Una de las opciones que mas me llamó la atención y que nos puede servir fue la de hacer un Network Crash, ésto te permite hacer un volcado del kernel por red hacia otro servidor. Los pasos para preparar ésto son bastante sencillos, básicamente es hacer un intercambio de claves y modificar la configuración del sysconfig como podemos ver en esta guía de Novell. Una vez preparada esta opción, cuando el sistema se quede colgado sólo tendríamos que ejecutar Alt + SysRq + C y estudiar los resultados.





En mi humilde opinion, este es el mejor tip para Linux que he podido conocer! Gracias por la guia y la explicacion!
Muy buen post Jorge, acabas de recuperar con creces los puntos frikis que perdiste con lo de Sopcast
No lo conocía y Mooola.
Si tienes el servidor remotizado por el puerto serie (como es mi caso), la secuencia de escape (break) funciona como si fuese SysReq.
Espero no necesitarlo
Muy bueno… la verdad no me la sabía, lo tendré en cuenta en futuras instalaciones… :p
Un saludo desde Chapinlandia
ya se me ha quedado trabado ubuntu pero no conocia la forma de cancelar procesos y lo único que me sabia era resetear el entorno gráfico ctrl+alt+backspace, pero si se trababa el clasico reseteo, buen tip.
Bien lo probe y con exito me andubo…tambien me paso q solo sabia resetear el entorno grafico con ubuntu y con otras distribuciones era diferente. pero el REISUB esta bueno.