La tecla mágica SysRq es una combinación de teclas que entiende el kernel de Linux , que permite al usuario ejecutar varios comandos de bajo nivel independientemente del estado del sistema. Se suele utilizar para recuperarse de bloqueos , o para reiniciar un ordenador sin dañar el sistema de archivos . [1] Su efecto es similar al botón de reinicio de hardware del ordenador (o interruptor de encendido) pero con muchas más opciones y mucho más control.
Esta combinación de teclas proporciona acceso a funciones de recuperación ante desastres. En este sentido, puede considerarse una forma de secuencia de escape . Entre los comandos ofrecidos, se encuentran los medios para desmontar sistemas de archivos de manera forzada, matar procesos, recuperar el estado del teclado y escribir datos no escritos en el disco.
La tecla mágica SysRq no puede funcionar en determinadas condiciones, como un pánico del kernel [2] o una falla de hardware que impida que el kernel se ejecute correctamente.
La combinación de teclas se compone de Alt+ SysRqy otra tecla, que controla el comando emitido. puede soltarse antes de pulsar la tecla de comando, siempre y cuando permanezca pulsada.SysRqAlt
Las combinaciones siempre asumen la distribución del teclado QWERTY ; [ cita requerida ] por ejemplo, en la distribución del teclado Dvorak , la combinación para apagar el sistema utiliza la tecla en lugar de . Además, algunos teclados pueden no proporcionar una tecla separada. En este caso, debería haber una tecla separada.ROSysRqPrtScn
En algunos dispositivos, especialmente las computadoras portátiles, es posible que sea necesario presionar la tecla para usar la tecla mágica, por ejemplo, en Thinkpad Carbon X1, se activa presionando + + simultáneamente, luego soltando y mientras aún se mantiene presionado . [3] En un dispositivo ChromeOS, se activa presionando + + .FnSysRqSysRq AltFnSFnSAltSysRq AltVolume Up (F10)<key>
También se puede acceder a las funciones de SysRq sin un teclado. Consulte § Otras formas de invocar Magic SysRq a continuación. Tenga en cuenta que algunos comandos pueden estar deshabilitados de fábrica, como se especifica en el valor de máscara de bits en /proc/sys/kernel/sysrq
. [4]
Ejemplo de salida del comando + :SysRqh
sysrq: AYUDA: loglevel(0-9) reiniciar(b) bloquear(c) terminar-todas-las-tareas(e) matar-oom-por-memoria-llena(f) matar-todas-las-tareas(i) descongelar-sistemas-de-archivos(j) sak(k) mostrar-trace-de-todas-las-cpu-activas(l) mostrar-uso-de-memoria(m) arreglar-todas-las-tareas-RT(n) apagar(o) mostrar-registros(p) mostrar-todos-los-temporizadores(q) deshacer-el-dato(r) sincronizar(s) mostrar-estados-de-tareas(t) desmontar(u) forzar-fb(v) mostrar-tareas-bloqueadas(w) volcar-el-búfer-ftrace(z)
La función está controlada tanto por una opción de tiempo de compilación en la configuración del kernel, CONFIG_MAGIC_SYSRQ , como por un parámetro de kernel sysctl , kernel.sysrq .
En los kernels más nuevos (desde 2.6.12 [7] ), es posible tener un control más preciso sobre cómo se puede usar la tecla mágica SysRq. [8] En estas máquinas, el número escrito en /proc/sys/kernel/sysrq puede ser 0, 1 o un número mayor que 1, que es una máscara de bits que indica qué funciones se deben permitir. En Ubuntu, esto se establece en el momento del arranque con el valor definido en /etc/sysctl.d/10-magic-sysrq.conf .
Antes de la llegada de los sistemas de archivos con registro, un uso común de la tecla mágica SysRq era realizar un reinicio seguro de una computadora Linux bloqueada (usando la secuencia de pulsaciones de teclas indicada por el mnemónico REISUB ), lo que reducía el riesgo de corrupción del sistema de archivos. Con los sistemas de archivos modernos, esta práctica no se recomienda, ya que no ofrece ventajas sobre un reinicio directo, [9] aunque el valor predeterminado de kernel.sysrq en distribuciones como Ubuntu y Debian sigue siendo 176 [ cita requerida ] (permitiendo las funciones de sincronización, desmontaje y reinicio) y 438 [10] (permitiendo las mismas funciones más loglevel, unraw y nice-all-RT-tasks) respectivamente.
Otro uso pasado era matar un programa gráfico congelado , ya que el sistema X Window solía tener control completo sobre el modo gráfico y los dispositivos de entrada.
En las distribuciones que no incluyen un comando de modo de texto , [ aclaración necesaria ] la secuencia de teclas + + puede forzar un cambio a una consola de texto. Algunos sistemas pueden requerir el uso de o en lugar de .CtrlAltF1F2F3F1
Si bien la tecla mágica SysRq se implementó originalmente como parte del controlador de teclado del núcleo para la depuración, la funcionalidad también se ha expuesto a través del sistema de archivos proc y se usa comúnmente para proporcionar capacidades de administración extendidas a sistemas remotos y sin interfaz gráfica. Desde programas de espacio de usuario (como un shell de línea de comandos), se puede acceder a SysRq escribiendo en /proc/sysrq-trigger (por ejemplo, ). [1]echo s > /proc/sysrq-trigger
Muchos sistemas integrados no tienen un teclado conectado, sino que utilizan una consola serial para la entrada y salida de texto al sistema en ejecución. Es posible invocar una función Magic SysRq a través de una consola serial enviando una señal break serial , seguida de la tecla deseada. El método para enviar una señal break depende del programa de terminal o del hardware utilizado para conectarse a la consola serial. Se debe configurar una opción sysctl para habilitar esta función. [11]
Los daemons de Linux sysrqd [12] y tcpconsole [13] proporcionan un método para acceder a las funciones SysRq a través de una conexión TCP después de autenticarse con una contraseña de texto sin formato. El daemon hangwatch [14] invocará activadores SysRq preconfigurados cuando la carga promedio del sistema supere un umbral determinado.
El hipervisor Xen tiene la funcionalidad de enviar comandos mágicos a dominios alojados a través de su comando xm sysrq . [15] Además, se puede invocar un comando SysRq desde una consola paravirtual Xen enviando una secuencia de interrupción + seguida de la tecla deseada.CtrlO
Las Chromebooks tienen un teclado pero no una tecla SysRq dedicada. En su lugar, utilizan + ( + ), [16] [17] [18] sin embargo, algunas teclas tienen una función diferente. [19] [20]AltVolumeUpAltF10
Los servidores IBM Power Systems pueden invocar la función Magic SysRq utilizando + seguido de la tecla deseada desde la Consola de administración de hardware .CtrlO
Las particiones de mainframe de IBM pueden invocar la función Magic SysRq utilizando + seguido de la tecla deseada en la consola 3270 o HMC.^-