Efectivamente, __como en cualquier otro sistema operativo__ las aplicaciones a veces dejan de responder en GNU/Linux, principalmente por fallos en la aplicación o en alguno de los componentes que utilice.

No es algo demasiado común, pero a veces no solo se cuelgan sin más, sino que lo hacen de tal forma que conseguir retomar el control del escritorio sin molestias puede requerir alguna pequeña triquiñuela. El objetivo de esta guía es que aprendamos a lidiar con estas situaciones para que no nos veamos obligados a reiniciar el sistema solo porque queramos librarnos de estas aplicaciones colgadas. Por ello, veremos hasta __seis formas de hacerlo__, tanto utilizando el entorno gráfico como la terminal.

El monitor de sistema de GNOME

Lo más parecido al _gestor de tareas_ de _Windows_ en GNOME es el monitor del sistema, que presenta los procesos de forma gráfica en un listado y permite cerrarlos haciendo clic derecho sobre ellos. Para lanzarlo, puedes utilizar el diálogo de ejecución pulsando _Alt+F2_ y allí escribir _gnome-system-monitor_.

Me consta que algunas distribuciones tienen asignada alguna combinación de teclado para que se abra el monitor del sistema, pero esto no es así en la mayoría, así que si quieres que se abra pulsando, por ejemplo, _Control+Alt+Suprimir_ puedes hacerlo yendo a _Sistema_ » _Administración_ » _Combinaciones de teclas_.

El equivalente en KDE: Ksysguard

KDE también tiene su propio _monitor del sistema_, llamado _Ksysguard_. Puedes ejecutarlo pulsando _Alt+F2_ y escribiendo _ksysguard_, o desde el menú _Aplicaciones_ » _Sistema_ » _Ksysguard_. También puedes obtener una versión reducida con la combinación de teclas _Control+Escape_.

Xkill: apunta y dispara

Este pequeño pero muy útil programa nos permite forzar el cierre de una aplicación señalándola con el cursor. Tras lanzarlo, este se transforma en una _X_ y solo deberemos hacer clic sobre una ventana de dicha aplicación. Si nos arrepentimos, pulsando la tecla _Escape_ el cursor vuelve a la normalidad.

Como las ocasiones anteriores, puedes ejecutar _xkill_ asignándolo a una combinación de teclado o pulsando _Alt+F2_ y escribiendo _xkill_.

El comando killall

Nos pasamos ahora a la __terminal__. Normalmente la encontrarás en _Aplicaciones_ » _Accesorios_ » _Terminal_, o en el menú equivalente de vuestro escritorio. Si tienes problemas para abrir una terminal gráfica, también puedes salir del entorno gráfico momentáneamente con la combinación de teclas _Control+Alt+F1_. Podrás volver al entorno gráfico o rotar entre más consolas con la combinación de teclas _Alt+Izquierda_ y _Alt+derecha_.

_Killall_ nos permite enviar una señal de cierre (_TERM_) a una aplicación escribiendo el nombre del proceso. Si hay varios procesos con ese nombre, se la enviará a todos. Por ejemplo, para cargarse todos los _firefox_:

killall firefox

Si la aplicación está colgada, lo más probable es que no responda a la señal de cierre y para deshacerse definitivamente de ella tendrás que matarlos enviándoles una señal _KILL_:

killall -KILL firefox

Los comandos kill, pkill y pgrep

Muy en la línea de _killall_ tenemos _kill_, que en lugar de recibir como parámetro el nombre del proceso, recibe el número de identificación del proceso (_PID_). Podemos obtener este _PID_ de múltiples maneras, pero precisamente para ello tenemos _pgrep_, que nos muestra el _PID_ de un proceso si le pasamos su nombre. Mezclando ambas aplicaciones tenemos _pkill_, que se encarga de buscar el _PID_ y luego le envía la señal.

kill 15670
pkill firefox
kill $(pgrep firefox)

Como sé que al principio puede parecer un poco lioso, nada mejor que un ejemplo. Suponemos que tenemos un _Firefox_ cuyo _PID_ es 15670. En el primer ejemplo, le enviamos la señal de cierre mediante su _PID_, en el segundo mediante su nombre de proceso, y en el tercero usamos _pgrep_ para obtener el _PID_ y el resultado se lo pasamos a _kill_.

Pero entonces, __¿qué diferencia hay entre _killall_ y _pkill_?__ Pues mientras que al primero tenemos que pasarle el nombre exacto del proceso, _pkill_ (y también _pgrep_) pueden buscar utilizando expresiones regulares y pueden hacerlo además sobre la línea completa de ejecución, no solo sobre el nombre del proceso.

pkill '^f'
pgrep -f gvfs

Otros dos ejemplos: La primera de las dos órdenes envía una señal de cierre a todos los procesos que empiecen por «_f_», mientras que la segunda busca los _PIDS_ de todos los procesos que en su línea de ejecución tengan la palabra _gvfs_.

Tal y como pasaba con _killall_, si la aplicación está colgada, seguramente no responderá a la señal de cierre y para deshacerse definitivamente de ella tendrás que matarla enviándole una señal _KILL_:

pkill -KILL firefox

Utilizando top o htop

_Top_ es otra aplicación en línea de comandos que viene junto con todas las distribuciones de GNU/Linux. Su manejo es algo complicado, por lo que puede ser recomendable instalar y probar _htop_, que se parece bastante en concepto pero es __mucho más sencillo y colorido__.

Para cerrar un proceso en _top_ debes pulsar la tecla «_k_» y escribir su _PID_, que puedes encontrar en la primera columna de la vista de la aplicación. Con _htop_ es más sencillo, muy en la onda de los gestores gráficos: te posicionas en el proceso que deseas utilizando los cursores del teclado y pulsas _F9_.

Más guías y consejos

Recibe cada mañana nuestra newsletter. Una guía para entender lo que importa en relación con la tecnología, la ciencia y la cultura digital.

Procesando...
¡Listo! Ya estás suscrito