Iba a dejar en el mini-tutorial
“muchas veces nuestro sistema falla y nada parece responder, para
eso existe una combinación de teclas que nos puede sacar del apuro o del problema”. Pero lo cierto es que estaría cometiendo un error, ya que “muchas veces” no es lo que realmente pasa, lo correcto es “pocas veces”. ¡Así es! Cuando en una rara ocasión nuestro sistema falla, bueno, siendo mas claro, cuando nuestro
sistema operativo deja de responder y se queda “congelado, trabado..” y no funciona entrar a una tty ni [ctrl]+[alt]+[supr], hay mejores opciones que presionar el boton de encendido/apagado que puede ocasionar perdidas de información y daños al sistema de ficheros de nuestras particiones.
Si se presiona [Alt] + [SysRq]/[Impr Pant] mientras se teclea las letras "reisub" (b=reinicia, o=apaga), nuestro sistema aunque aparentemente este congelado/trabado
se reinicia de una forma segura, sin poner en riesgo la integridad de los datos.
Para poder contar con ese “truco” hay que fijarse en los siguientes detalles:
1) Nos fijamos si la opción fue compilada en el núcleo,
(seguramente sí, para la mayoría de las
distros). Tecleamos en la consola (ojo el carácter
“$” denomina una terminal logueados como
usuarios normales):
$grep "CONFIG_MAGIC_SYSRQ" /boot/config-$(uname -r)Hay que notar que el comando “uname -r” nos muestra la versión del kernel que estamos usando y el segundo “$” lo que hace es expandir el comando, así que seria lo mismo a teclear:
$grep "CONFIG_MAGIC_SYSRQ" /boot/config-version_del_kernelclaro, y
/boot/config-$(uname -r) y
/boot/config-version_del_kernel lo podemos aplicar en distros basadas en debían, para aplicar el método en otras distros hay que fijarnos en el directorio /boot, cual es nuestro fichero “.config” que es el fichero donde se muestran y editan las opciones del kernel (ojo lo anterior se refiere a que las distintas distros pueden cambiar el nombre del fichero en mención, en terminos generales ".config" ).
Si todo resulta bien, se tendría que imprimir en pantalla:
CONFIG_MAGIC_SYSRQ=ySi no sale nada, significaría que el kernel no tiene soporte para dicha opción, solo tendríamos que entrar y editar como administradores el fichero
/boot/config-$(uname -r) o el
.config y dejarlo de esto “#CONFIG_MAGIC_SYSRQ is not set” a “CONFIG_MAGIC_SYSRQ=y” y seguido recompilar el kernel si tenemos las fuentes.
2) El siguiente comando lo que hace es agregar el valor “1” al fichero en cuestión, notar que se antepone “#” que significa que somos superusuarios, claro si quieren saltarse el paso de loguearse como superusuario/administrador/root, pueden usar el comando sudo:
•
#echo "1" > /proc/sys/kernel/sysrq ;como administrador
•
$sudo echo "1" > /proc/sys/kernel/sysrq ;como usuario normal usando superpoderes ;)
Para nuestro objetivo el valor “1” debería estar en el fichero /proc/sys/kernel/sysrq, pero hay mas
opciones, como lo son:
0 - desactivar sysrq
1 - activa sysrq completo
2 - Control de nivel de registro de consola
4 - Control de teclado (SAK, unraw)
8 - vertederos de depuración de los procesos, etc
16 - sync
32 - volver a montar de sólo lectura
64 - la señalización de los procesos (plazo, matar, matar-oom)
128 - reiniciar / poweroff
256 - Todas las tareas RT
Bueno ahora seria conveniente mostrar el significado del compuesto de letras REISUB:
Raw, t
Erm, k
Ill,
Sync,
Umount, re
Boot (REISUB)
R:Pone el teclado en modo “raw” (directo). (investiguen sobre modos de operación que modifican el tratamiento del teclado)
E: t
Erm SIGTERM. Envia SIGTERM a todos los procesos, lo que les permite terminar con gracia.
I: k
Ill SIGKILL. Envia SIGKILL a todos los procesos, lo que obliga a cancelar inmediatamente, menos a init.
S: Sync Sincronización del disco. Intenta escribir todos los datos que no han sido guardados.
U: Umount Remonta todos los sistemas de archivos en modo solo lectura.
B: re
Boot Reinicia el sistema.
Hay otras opciones:
O: Out Apaga el sistema.
L: kilL SIGKILL. Envía una señal de fin a todos los procesos, incluyendo a init.
K: Key Envía una señal de fin a todos los procesos de la consola virtual activa.
P: Print Muestra el contenido de los registros y de las banderas (flags) en la consola.
M: Memory Muestra el contenido de la memoria en la consola.
T: Task Muestra el contenido de las tareas que se están ejecutando e información relacionada.
0-9: Number Fija el nivel de la consola de log.
Referencias:1) $man kill ( http://unixhelp.ed.ac.uk/CGI/man-cgi?kill )
2) $man uname (http://www.rdg.ac.uk:8081/cgi-bin/cgiwrap/wsi14/poplog/man/1/uname)
3) http://www.kernel.org/doc/Documentation/sysrq.txt, http://linuxgazette.net/issue81/vikas.html,
http://fedoraproject.org/wiki/QA/Sysrq