Matar procesos en GNU/Linux
Los sistema GNU/Linux son conocidos por su estabilidad, robustez y funcionalidad continuada sin reportar errores. No obstante, un sistema desktop no está exento de posibles fallos, como la congelación de aplicaciones o bloqueos de ventanas generalmente producidos por fallos del usuario, o por el fallo de un programa o librería.
Normalmente esto no supone un problema demasiado importante, ya que en sistemas GNU/Linux disponemos de varias herramientas para solventarlo. Solo tendremos que «matar» las aplicaciones que se hayan bloqueado, y el resto seguirán funcionando correctamente.
Las distribuciones más modernas detectan cualquier problema con las ventanas ofreciendo la posibilidad de cerrarlas. Pero nos podemos encontrar con la situación de que el fallo afecte a este sistema y también quede bloqueado. El proceso seguirá ejecutándose, hasta el punto de agotar los recursos del sistema.
Vamos a ver en este artículo cuatro herramientas en linea de comandos para terminar procesos. Los comandos xkill, kill, pkill y killall.
Sumario
- Cerrar aplicaciones con xkill
- El comando kill
- El comando pkill
- El comando killall
Cerrar aplicaciones con xkill
Al producirse un bloqueo o congelación parcial, disponemos del comando «kill» que nos permite «matar» el proceso que ha quedado congelado. Se trata de un comando poderoso, pero tal vez, un poco enrevesado para aquellos usuarios menos experimentados.
Ante una situación así, lo más sencillo es utilizar la herramienta «xkill». Es una opción disponible en la mayoría de distribuciones, por eso, comprobamos que la tenemos instalada y verificamos la versión del software.
xkill -v
Como vemos en la captura anterior, tenemos instalada la versión 1.0.5.
Si no obtienes ninguna respuesta, tienes que instalar «xkill».
En sistemas Debian y derivados, Ubuntu, Linux Mint, …
sudo apt install xorg-xkill
Si utilizas Arch Linux, Manjaro y derivados
sudo pacman -S xorg-xkill
Y con sistemas RHEL y derivados, Fedora, Alma Linux, CentOS, …
sudo dnf install xorg-xkill
Vamos a probar la herramienta. Para lanzarla ejecutamos
xkill
El puntero del ratón se convierte en una «X». Solo tienes que mover el puntero a la ventana de la aplicación gráfica que quieres cerrar y clicar en ella con el botón izquierdo del ratón. «Xkill» matará el proceso marcado y se cerrará la aplicación seleccionada.
Tenemos una práctica y elegante opción para agilizar la ejecución del comando. Vamos a crear un atajo de teclado, verás que práctico.
Desde el menú «Aplicaciones» o desde el icono triángulo del panel superior, abrimos «Configuración» y buscamos «Combinación de teclas». Al final clicamos en el signo «+» y se abre la ventana para añadir el atajo de teclado. Como nombre le damos «Matar_proceso» y Comando «xkill». Ya solo queda «Establecer atajo…»
Por ejemplo, elegimos Ctrl + Alt + M.
Cuando tengas algún bloqueo de una aplicación, solo tendrás que pulsar la combinación de teclas Ctrl + Alt + M, y el cursor de tu ratón se convertirá en una «X» que te permitirá cerrar la aplicación gráfica problemática.
El comando kill
Al ejecutar el comando «kill», enviamos una señal al proceso estableciendo una acción determinada. Se pueden consultar estas señales con
kill -l
Lo más habitual para matar procesos es averiguar el pid del proceso y actuar sobre él. Para identificar el proceso podemos ejecutar el comando «ps» con la opción «-ax», añadiendo la aplicación que da problemas como argumento del filtro «grep». En este caso vemos la aplicación de gestión de correo predeterminada en Debian, «Evolution».
ps -ax | grep evolution
Observamos que el pid padre (ppid) de «evolution» es 4515. Y lo matamos con
kill 4515
Si necesitas saber si el proceso en cuestión es un proceso padre o hijo de otro, ejecuta el comando «pstree» con la opción «-p» para que muestre los pid.
pstree -p
Si quieres matar varios procesos a la vez añade el pid que quieras tras el comando.
kill 1281 1255 1233 1293 1119 1090 1264 1197
Si tienes problemas añade la señal «-9» para forzarlo.
kill -9 1281 1255 1233 1293 1119 1090 1264 1197
Consulta el manual integrado con
man kill
Comando pkill
El comando «pkill» cumple la misma función que «kill» pero sin la necesidad de introducir el pid. Se ejecuta añadiendo el nombre del proceso. Esto tiene un problema que consiste en que, por ejemplo, si tenemos corriendo los navegadores «chrome» y «chromium», y ejecutamos el comando «pkill chro», nos matará los dos procesos. Por ello hay que tener cuidado o cerraremos programas que no queremos matar.
Para no equivocarnos deberemos introducir el nombre completo del proceso a matar.
Y lo matamos con
pkill chromium
Por esta razón es conveniente utilizar el comando con la opción «-x», lo que nos obligará a utilizar el nombre completo del proceso y matar lo que tenga una coincidencia del 100%.
pkill -x evolution
«pkill» admite las señales del comando «kill». Con «-9» forzaremos su ejecución.
pkill -9 chromium
El comando killall
«killall» requiere del nombre completo del proceso. Por ejemplo…
killall evolution
Puedes añadir las señales de «kill».
killall -9 evolution
Es interesante el solicitar confirmación con la opción -i.
killall -i chromium
Consulta el manual integrado con
man killall
También puedes matar procesos con la herramienta grafica «htop», que ya hemos visto en este blog en otro artículo.
Si tienes algún comentario que hacer sobre este artículo, al pie del post tienes un formulario para hacerlo.
Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.
Y para suscribirte y recibir las novedades publicadas, tienes un enlace en pie de la página o desde aquí mismo.