Por algún extraño motivo, Gnome Shell siempre se bloquea cuando cuelgo una llamada de Skype. En muchas otras ocasiones, insiste en consumir más recursos de los que debería, llegando a veces a bloquear por entero mi ordenador.
Cómo matar el proceso bloqueado de Gnome Shell
Normalmente no queda más remedio que cambiar a otra terminal (pulsando Ctrl + Alt + F2/F3/F4...) y matar el proceso a lo bruto con este comando:
killall --signal KILL gnome-shell
Gnome Shell 3.4 se reinicia automáticamente tras hacer esto. El problema es que, dado que el ordenador ha sido bloqueado, a veces ni siquiera puedo cambiar de terminal.
Evitar que Gnome Shell llegue a bloquear por completo el ordenador
Le vamos a asignar una prioridad inferior al proceso. En GNU/Linux, cuanto menor es el nice, mayor es la prioridad del proceso, y viceversa, así que disminuiremos su prioridad aumentando su nivel de nice.
$ renice --priority 5 --pid $(pidof gnome-shell)
Ahora puede que se bloquee, pero al menos no debería inutilizar a otros procesos más importantes. Si se cuelga, ahora podrás cambiar de terminal y matar el proceso sin ningún problema. Sin embargo, en cuanto reinicies el ordenador, todo esto perderá su efecto.
Automatizar el cambio de prioridad
Crear un script que haga el trabajo sucio
Es el primer paso. Para ello, puedes usar este comando:
cat << END > ~/.local/bin/gnome-shell-renice.sh #!/usr/bin/env bash renice --priority ${1:-5} --pid $(pidof gnome-shell) END chmod u+x ~/.local/bin/gnome-shell-renice.sh
Nota: La parte de ${1:-5}
usa la variable
$1
y, si no se indica, usa el valor literal 5
. De este modo,
puedes llamar al script con un comando como el siguiente para que la prioridad se
establezca en 10:
gnome-shell-renice.sh 10
Crear un fichero .desktop que se cargue al iniciar sesión
Puedes usar gnome-session-properties
para eso, o crearlo por consola así:
cat << END > ~/.config/autostart/renice.desktop #!/usr/bin/env xdg-open [Desktop Entry] Type=Application Exec=gnome-shell-renice.sh Hidden=false X-GNOME-Autostart-enabled=true Name[es_ES]=Reducir prioridad de Gnome Shell Name=Reduce Gnome Shell priority Comment[es_ES]=Reduce la prioridad de la shell para evitar bloqueos Comment=Reduce Gnome Shell priority to avoid freezes END
Nota: No puedes escribir el script directamente en el fichero .desktop por restricciones de seguridad.