Pet Sis

De doc.ubuntu-es
Saltar a: navegación, buscar

Pet Sis es el acrónimo que responde a Petición al Sistema y que aparece en los teclados españoles en la tecla misma tecla que Impr pant o PrintScr (imprimir pantalla), a la derecha de la tecla F12. Es el equivalente en teclados ingleses a la tecla Sys Req (System request), que también puede hallarse abreviada a SysRq, SysReq o Sys Rq. Podemos acceder a sus funcionalidades mediante la combinación de la tecla "Alt" y la tecla "Impr pant".

Esta tecla puede o no tener funcionalidad dependiendo del sistema operativo que estemos usando. En los sistemas con el kernel Linux esta tecla nos permite ejecutar algunos comandos de bajo nivel independientemente del estado de nuestro sistema. Esto resulta especialmente útil en el caso que algún proceso bloquee nuestro sistema y deje a nuestra máquina congelada, ya que nos permite realizar un cerrado del sistema en caso de necesidad sin corromper el sistema de archivos.

Esta funcionalidad está incorporada en el kernel de linux desde la versión 2.1.


Contenido

Las Magic Keys (Claves Mágicas)

Las Magic Keys o Teclas Mágicas de GNU/Linux son una combinación de teclas que nos permiten rescatar un sistema que se haya quedado congelado, ya que nos permite comunicarnos con el sistema y lanzar órdenes al kernel cuando cualquier otro método falla (por ejemplo cuando el sistema no responda debido a que se encuentre incapaz de procesar lo que se le mande por teclado).

De este modo, si nuestro sistema queda bloqueado, tendremos que pulsar la tecla "Alt" + "Pet Sis" e ir combinando con las letras: R, S, E, I, U y B. Gracias a esto podremos reiniciar nuestro equipo guardando la informacion que estaba en la cache del sistema de ficheros (y por tanto, sin corromper el sistema de ficheros).

A continuación se detallan las acciones que se llevan a cabo con cada letra:


  • Alt + Pet Sis + R: (Raw) Pone el teclado de modo "raw" (directo) a modo "xlate". Este comando es muy útil cuando el interfaz gráfico se bloquea y no responde ni al teclado ni al ratón. Le dice al sistema que descargue todos los controladores de teclado y devuelve el control del teclado al kernel. Esto nos permite hacer "CTRL+Alt+F1" y abrir una sesión en una terminal para matar el proceso que está bloquenado el sistema. Si esto no funciona, tendremos que pasar a emplear el siguiente comando de la combinación (tecla S).


  • Alt + Pet Sis + S: (Sincronizar) Sincroniza los discos duros para intentar salvar datos no guardados y evitar así la corrupción de ficheros. Como a partir de ahora puede ser que reiniciemos el ordenador, es mejor decirle al sistema que guarde nuestros datos para que al arrancar no tenga que hacer un fsck. Esto nos permite emplear con tranquilidad el siguiente comando de la combinación (tecla E).


  • Alt + Pet Sis + E: (TErminar) Envía SIGTERM (señal de parada Kill -15 que permite a esos procesos cerrar correctamente) a todos los procesos del sistema exceptuando a init. Si esto funciona, se cierran todos los procesos y programas y inicia una sesión de consola (ver: arrancando los procesos cerrados). Si no funciona, tendremos que pasar a emplear el siguiente comando de la combinación (tecla I).


  • Alt + Pet Sis + I: (kIll) Envía un SIGKILL (matar o kill -9, que cierra drásticamente a esos procesos) todos los procesos exceptuando a init. Si esto funciona, se fuerza el cierre de todos los procesos y programas y se inicia una sesión de consola (ver: arrancando los procesos cerrados). Si con esto tampoco hemos conseguido que el sistema se recupere, entonces tendremos que emplear el siguiente comando de la combinación (tecla U) para preparar el sistema para reiniciar sin riesgos.


  • Alt + Pet Sis + U: (Umount) Desmonta y remonta los discos en modo sólo lectura. Primero se guardan los datos de las cachés, se desconectan las unidades (para que no se afecten con el reinicio) y se remonta todo el sistema de ficheros en modo sólo lectura. Esto puede evitar la corrupción de datos y será lo último que hagamos antes de reiniciar.


  • Alt + Pet Sis + B: (reBoot) Se reinicia el ordenador.


Un resumen de los comandos que han sido empleados sería:


    Raw + Sync + tErm + kIll + Umount + reBoot.


En inglés existe una regla mnemotécnica para recordarlos:


Raising Skinny Elephants Is Utterly Boring


Que viene a significar: "Criar Elefantes Flacuchos Es Completamente Aburrido"

Esta combinación resulta muy útil cuando algun modulo del kernel u otro proceso deja el sistema bloqueado, pero evidentemente es la última opción para cerrar el sistema, ya que no evita que los documentos que tuviéramos abiertos se cierren sin guardar los cambios más recientes.

Si conseguimos rescatar el sistema mediante Alt + Pet Sis + E o Alt + Pet Sis + I sin haber tenido que reiniciar, podemos optar por arrancando los procesos cerrados, aunque hemos de valorar si esto nos compensa, ya que implica trabajar con conceptos un poco más avanzados. En general para un equipo que trabaje como servidor nos puede compensar y según en qué situación (en la que hayamos dejado trabajos MUY importantes y queramos maximizar las posibilidades de recuperar lo perdido) también en un sistema de escritorio.

En caso de duda o de ser usuario principiante, es mejor hacer la secuecia completa: Alt + Pet Sis + R + S + E + I + U + B y reiniciar el sistema para ahorrarse complicaciones.


Clip.png Las Magic Keys son una opción que viene por defecto en muchos kernels precompilados de las distribuciones (como es el caso de Ubuntu). En elcaso en que nos encontremos que estuvieran deshabilitadas, habría que:
  • Versiones del Kernel 2.6 y posteriores: Tendremos que habilitar la opción “Magic SysRq Key” que hay en el menú “Kernel Hacking”.
  • Versiónes del Kernel 2.4 hasta 2.1: Tendremos que habilitar la opción “Magic SysRq Key” que hay en el menú "Kernel Debugging".


Recuperar el sistema arrancando los procesos cerrados (usuarios avanzados)

Si hemos realizado Alt + Pet Sis + E o Alt + Pet Sis + I y el cierre de procesos ha funcionado correctamente, nos quedaremos con una mera terminal con únicamente el proceso init abierto.

Asumiremos que funcionamos con la configuración estándar de Ubuntu y arrancamos el sistema en runlevel 2 (si no es el caso y hemos editado esto anteriormente, ir al apartado siguiente), así que para volver al estado anterior tendremos que entrar en el directorio /etc/rc2.d a través de una consola y empezaremos a ejecutar:

./SXXnombre start

Por cada proceso que queramos arrancar. Una vez abierto el gestor de ventanas gdm o kdm (en Kubuntu) ya volveremos a tener el sistema en perfectas condiciones para seguir trabajando, aunque muy posiblemente hayamos perdido los cambios recientes sin guardar de los archivos que habían estado abiertos al realizar la maniobra de cierre de procesos (algunas aplicaciones como OpenOffice tiene sistemas de recuperación de estos datos).


En caso de no arrancar con Runlevel 2

En el apartado anterior se ha comentado cómo iniciar de nuevo los procesos en una maquina que arranque Ubuntu en runlevel 2, que es la configuración por defecto en Ubuntu, pero si hemos cambiado esta opción tendremos que determinar en qué runlevel arranca nuestro Ubuntu. Como al parecer, a partir de la versión 6.10 (Edgy Eft) de Ubuntu, se abandonó el inittab y se ha sustituído por upstart, según qué versión de Ubuntu usemos tendremos que realizar esta comprobación de forma distinta:


  • De Ubuntu 4.10 a 6.06: seguramente tendremos que ir a /etc/inittab y buscar la línea:
# The default runlevel.
id:X:initdefault:
Donde "X" será el runlevel por defecto.


  • A partir de Ubuntu 6.10 en adelante: Para saber en qué runlevel arranca nuestra máquina habrá que mirar en el archivo:
/etc/event.d/rc-default
En ese archivo veremos la línea:
telinit 2
El número indica el runlevel en el que arranca la máquina por defecto, en este ejemplo el 2.


Una vez sepamos esto sólo habrá que entrar en el directorio /etc/rcX.d a través de una consola y empezaremos a ejecutar:

./SXXnombre start  (nombres de procesos)

Por cada proceso que queramos arrancar. Una vez abierto el gestor de ventanas gdm o kdm (en Kubuntu) ya volveremos a tener el sistema en perfectas condiciones para seguir trabajando, aunque muy posiblemente hayamos perdido los cambios recientes sin guardar de los archivos que habían estado abiertos al realizar la maniobra de cierre de procesos (algunas aplicaciones como OpenOffice tiene sistemas de recuperación de estos datos).

Logs

La salida de dmesg puede ser guardada en /var/log/syslog de forma inmediata y si la visualizamos por consola nos mostrará:


  • Tras pulsar Alt + Pet Sis: Activa el modo SysRq.
SysRq : HELP : loglevel0-8 reBoot tErm kIll saK showMem powerOff showPc unRaw Sync showTasks Unmount
  • Tras pulsar Alt + Pet Sis + R:
SysRq : Keyboard mode set to XLATE
  • Tras pulsar Alt + Pet Sis + S: Se activa la sincronización y nos indica que no ha habido errores.
SysRq : Emergency Sync
Emergency Sync complete 
  • Tras pulsar Alt + Pet Sis + E: El sistema termina todos los procesos.
SysRq : Terminate All Tasks
  • Tras pulsar Alt + Pet Sis + U: Se muestra el desmontado/remontado correcto de las unidades en modo solo lectura.
SysRq: Emergency Remount R/O
Emergency Remount complete



Listado Completo de Combinaciones con Pet Sis

Además de las combinaciones listadas en el apartado anterior, existen otras combinaciones que nos permiten realizar otros comandos de bajo nivel. En el cuadro inferior se puede ver todo el listado de combinaciones para teclados que empleen la distribución de teclado estándar QWERTY (la más usada actualmente en el mundo y la que emplean los teclados españoles), para la distribucónde teclado AZERTY y DVORAK.


Acción del comando QWERTY DVORAK AZERTY
Determinar el level del log, que controla los tipos de mensajes del Kernel que aparecen por consola de 0 a 9 de 0 a 9 de 0 a 9
(sin pulsar la tecla mayúsculas)
Reiniciar inmediatamente el sistema sin desmontar ni sincronizar particiones b x b
Reiniciar kexec y mostrar la salida en un crashdump c j c
Enviar una señal SIGTERM a todos los procesos excepto a init (PID 1) e . e
Llamar a oom_kill, que mata un proceso para aliviar un estado de saturación de memoria (OOM f u f
Mostrar un archivo de ayuda por consola
Cualquier otra tecla que no esté asociada a un comando también lo activa
h d h
Enviar una señal SIGKILL a todos los procesos excepto a init (PID 1) i c i
Matar todos los procesos que se estén ejecutando en la consola virtual. Puede ser usado para matar programas de las X y que trabajen con svgalib (ver más abajo)
Esto fue diseñado originariamente para imitar a Secure Access Key
k t k
Enviar una señal SIGKILL a todos los procesos, incluído a init (PID 1) l n l
Mostrar a través de consola información del estado de la memoria en ese momento m m ,
Apagar el sistema o r o
Mostrar por consola los registros y flags en ese momento p l p
Pasar el teclado de modo RAW, el modo usado por los programas como el Sistema X Window y Svgalib, a modo XLATE r p r
Sincronizar todos los sistema de archivos (unidades) montados s o s
Mostrar por consola una lista de tareas en ese momento e información sobre ellas t y t
Desmontar y volver a montar todos los sistemas de archivos (unidades) en modo sólo lectura u g u
Mostrar información del procesador Voyager SMP v k v


Alternativas para Rescatar el Sistema

  • Si tenemos una red local y el servidor SSH activado, podemos entrar remotamente al PC “congelado” a través de SSH para matar los procesos que estén bloqueando el sistema afectado. En caso de no poder, habrá que optar por Pet Sis.
  • Otra forma de reiniciar el sistema de forma que no haya corrupción del sistema de archivos en caso de que el ordenador no respondiera de ninguna forma sería apretando el botón de apagado de la torre (eso sí, con acpid o apmd instalado). En este caso el botón de apagado actúa como si se mandara al sistema el comando Alt + Pet Sis + S + I + B.


Enlaces externos

Herramientas personales