#4sysadmins

Inicio » GNU/Linux » Escritorio congelado en Linux

Escritorio congelado en Linux

Últimas Entradas

Follow #4sysadmins on WordPress.com

¿Te ha ocurrido alguna vez que se te ha quedado el escritorio congelado?

En ocasiones ocurre esto mientras hacemos uso de Firefox a consecuencia del consumo de CPU/RAM que el proceso plugin-containe hace.

En Windows solemos o tirar de “botonazo”, o si el sistema aún nos lo permite, pulsamos la combinación de teclas Ctrl+Mayús+Esc y a través del administrador de tareas matamos aquellos procesos que creemos que están produciendo tal bloqueo.

En este caso, en Linux podríamos hacer uso de top y matar aquellos procesos que tienen un consumo elevado, por ejemplo de la siguiente manera:

$ top

top

Dentro de top pulsamos “k“, introducimos el PID y Enter para finalizar.

 

El proceso es crítico

Si el proceso es crítico y no queremos o podemos matarlo, podremos recurrir a reducir su prioridad o poner un límite al uso de la CPU.

Nota: Tanto para el uso del comando top, como para los que veremos a continuación, comentar que podremos pasar al modo comando (si nos encontramos en el escritorio y no podemos abrir una terminal) con Ctrl+Alt+F1 (de F1 a F6 son modo consola), y volver al escritorio (normalmente) con Ctrl+Alt+F8.

Reiniciar la prioridad

Este método seguramente no nos ayude demasiado, pero está bien comentarlo por el mero hecho de que hará que un proceso reinicie su prioridad de ejecución. Para reiniciar la prioridad deberemos de ser root y hacer uso del comando renice. El comando renice soporta un rango de valores que va desde el valor -20 para prioridades mas elevadas, es decir le daremos mayor prioridad a la ejecución de ese proceso, hasta 19 con el que indicaremos una prioridad menor (la mas baja posible) para ejecutar ese proceso.

Vamos a suponer que el PID es 2604 (para el ejemplo anterior, plugin-containe), y le vamos a asignar la prioridad 19.

$ ps -ef |grep firefox

Nos fijamos en el PID que realiza mayor consumo, el de plugin-containe (en este caso), lo copiamos y asignamos una prioridad baja.

$ sudo renice -n 19 -p 2604

Así conseguimos reiniciar la prioridad a la mínima (19).

 

Limitar cpu

Para esto necesitaremos tener instalada la herramienta cpulimit

$ sudo apt-get install cpulimit

Y ahora conociendo el PID del programa lanzamos el comando:

$ sudo cpulimit -p 2604 -l 30

Con este comando reducimos el uso de CPU (%) que hace el proceso con PID 2604 a 30%.

Otras opciones de cpulimit:

-b para hacer correr a cpulimit en background dejando así libre la terminal donde es ejecutado

-e <ejecutable>, por ejemplo -e firefox si es el programa que queremos limitar

-P /usr/local/bin/firefox, otra forma de limitar a firefox

-c <num>, con num indicamos el número de cores a utilizar

Ejemplo:

$ sudo cpulimit -e plugin-containe -l 30 -b -c 1

 

El proceso no es crítico

Si el proceso no es tan crítico y si que podemos “macharlo“, a él y a todo lo que tengamos actualmente abierto, podremos proceder de la dos siguientes formas:

Usar el comando xkill

xkill es como su nombre indica un “matador” de proceso en modo gráfico. Imaginar que estamos ante una aplicación que se ha quedado congelada en primer plano (por ejemplo LibreOffice), podemos entonces pulsar Alt+F2 y en la ventana que inicia escribimos: xkill. Ahora si nos fijamos, el puntero se ha convertido en una “X” pues clicamos sobre la ventana e inmediatamente se cerrará.

Reiniciar nuestro gestor de ventanas

Según que distribución estemos utilizando tendremos uno u otro gestor de ventana instalado. En nuestro caso estamos corriendo Linux Mint por lo que mdm será nuestro gestor de ventanas.

Si no sabemos cual usa nuestra distribución pasaremos primero a averiguarlo:

$ cat /etc/X11/default-display-manager
$ ps -ef |grep [mgk,light]dm

Vale ahora que ya sabemos cual es, vamos a modo consola (Ctrl+Alt+F1) y buscamos su PID. Una vez tenemos el PID podemos mandar a reiniciar el servicio de cualquiera de las siguientes maneras:

$ sudo kill -HUP 9873
$ sudo kill -HUP mdm
$ sudo service mdm restart

 

El teclado no funciona!

Esto que hemos comentado está muy bien cuando la CPU está crítica pero aún nos podemos mover con el teclado y ratón, pero… ¿y si el teclado no funciona o mas concretamente no somos capaces de pasar a modo consola con la combinación de teclas Ctrl+Alt+F1?

Para esto tenemos la combinación de teclas Alt+Impr Pant+R+E+I+S+U+B

Nota: Deberemos de tener en cuenta que en los portátiles quizás necesitemos pulsar también la tecla Fn

¿Alguna regla para acordarnos de esta combinación de teclas?

Vi una vez en un post una forma de recordar esta combinación, aunque a decir verdad la pasé por alto, pero cuando llegó el momento de recordarla se me vino a la cabeza precisamente por esa regla tonta que leí, atentos!!!:

REInicia SUBnormal

Las tres primeras letras de cada palabra :D

y… ¿para que sirve cada letra?

R: da el control de manera exclusiva al teclado de la máquina.

E: envía la señal SIGTERM a todos los procesos excepto a init. Equivale a la opción por defecto de kill (-15) que cierra o intenta cerrar los programas de la mejor manera, es decir, eliminando el PID, guardando los datos, etc…

I: envía la señal SIGKILL a todos los procesos excepto a init. Esta señal equivale a la opción -9 del comando kill y ya no es tan amable a la hora de cerrar, por regla general acaba matando a los procesos.

S: sincroniza los datos con el disco. Como el comando sync, opción para no encontrarnos con un sistema de archivos corrupto.

U: desmonta y monta todos los sistemas de archivos en modo solo lectura

B: reinicia el sistema sin desmontar y sincronizar los datos (como si pulsáramos el botón) obviamente esto ya se ha intentado hacer antes con las teclas anteriores.

Nota: En vez de B podemos utilizar O para apagar la máquina directamente.

Con todo lo anterior no garantizo al 100% la recuperación del control del sistema, pero se han visto varios comandos/herramientas útiles que utilizar, además de otras combinaciones de teclas y recursos a los que acudir si nos vemos ante tal problema.

Anuncios

Deja un comentario, Gracias!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: