Cómo matar procesos de Linux / aplicaciones que no responden usando el comando 'xkill'


¿Cómo matamos un recurso/proceso en Linux? Obviamente encontramos el PID del recurso y luego pasamos el PID al comando kill.

Hablando con más precisión, podemos encontrar el PID de un recurso (por ejemplo, terminal) como:

$ ps -A | grep -i terminal

6228 ?        00:00:00 gnome-terminal

En la salida anterior, el número "6228" es el PID del proceso (gnome-terminal), use el comando kill para matar el proceso como se muestra a continuación.

$ kill 6228

El comando kill envía una señal a un proceso, cuyo PID se pasa junto con el comando.

Alternativamente, podemos usar el comando pkill, que mata un proceso según el nombre y otros atributos de un proceso. Para matar un proceso, digamos cuyo nombre es terminal, necesitamos ejecutar:

$ pkill terminal

Nota: La longitud del nombre del proceso en pkill está limitada a 15 caracteres.

pkill parece más útil, ya que puede matar un proceso sin tener que averiguar su PID. Pero si desea tener un mejor control de su sistema, nada mejor que el comando "matar". Al usar kill, tendrá una mejor idea de qué proceso está matando.

Ya hemos cubierto una guía detallada sobre los comandos kill, pkill y killall.

Para aquellos que están ejecutando un servidor X, existe otra herramienta llamada xkill que puede matar un proceso desde su ventana X sin pasar el nombre del proceso o su PID.

La utilidad xkill obliga al servidor X a cerrar las comunicaciones con su cliente, lo que resulta en la muerte del cliente por su recurso X. xkill, que forma parte de las utilidades de X11, es muy útil para eliminar ventanas innecesarias.

Admite opciones como conectarse a un servidor X específico (-display displayname) usando el número de pantalla cuando varios servidores X se están ejecutando en un host simultáneamente y eliminar a todos los clientes (-todos, no recomendado) con ventanas de nivel superior en la pantalla, así como tenga en cuenta el marco (-frame).

Para obtener una lista de todos los clientes que puede ejecutar:

$ xlsclients
'  ' /usr/lib/libreoffice/program/soffice
deb  gnome-shell
deb  Docky
deb  google-chrome-stable
deb  soffice
deb  gnome-settings-daemon
deb  gnome-terminal-server

Si no se pasa ningún identificador de recurso con id, xkill convierte el puntero del mouse en un símbolo especial, similar a "X". Simplemente haga clic en la ventana que desea eliminar y esto eliminará su comunicación con el servidor o dirá que el programa se elimina.

$ xkill

Es importante notar que xkill no garantiza que cerrar su comunicación lo matará/abortará con éxito. La mayor parte de la aplicación se eliminará cuando se cierre la comunicación con el servidor. Sin embargo, es posible que algunos aún se estén ejecutando.

Puntos que es necesario mencionar aquí:

  1. This tool works only when X11 server is running, as xkill is a part of X11 utility.
  2. Don’t confuse with Closing and killing a resource. While killing a resource you may expect it not to exit cleanly.
  3. This is not a replacement of kill utility.

No, no es necesario activar xkill desde la línea de comandos de Linux. Puede establecer un atajo de teclado y llamar a xkill simplemente presionando la misma combinación de teclas.

A continuación se explica cómo configurar un atajo de teclado en un entorno de escritorio gnome3 típico.

Vaya a Configuración -> Seleccionar teclado, haga clic en "+" y agregue el nombre y el comando. Haga clic en la nueva entrada y presione la tecla que desea usar como combinación de teclas de acceso directo. Hice Ctrl + Alt + Shift + x.

La próxima vez que desee eliminar un recurso X, simplemente llame a la combinación de teclas (Ctrl + Alt + Shift + x) y notará que el puntero del mouse se convierte en x. Haga clic en el recurso x que desea eliminar y listo.