Com matar processos Linux/aplicacions que no responen mitjançant l'ordre xkill


Com matem un recurs/procés a Linux? Òbviament trobem el PID del recurs i després passem el PID a l'ordre kill.

Parlant amb més precisió, podem trobar el PID d'un recurs (per exemple, terminal) com:

$ ps -A | grep -i terminal

6228 ?        00:00:00 gnome-terminal

A la sortida anterior, el número 6228 és el PID del procés (terminal gnome), utilitzeu l'ordre kill per matar el procés com es mostra a continuació.

$ kill 6228

L'ordre kill envia un senyal a un procés, el PID del qual es passa juntament amb l'ordre.

Alternativament, podem utilitzar l'ordre pkill, que mata un procés en funció del nom i altres atributs d'un procés. Per matar un procés, diguem el nom del qual és terminal, hem d'executar:

$ pkill terminal

Nota: la longitud del nom del procés a pkill està limitada a 15 caràcters.

pkill sembla més útil, ja que podeu matar un procés sense haver de descobrir el seu PID. Però si voleu tenir un millor control del vostre sistema, res no supera l'ordre matar. Utilitzant kill tindreu una millor visió del procés que esteu matant.

Ja hem cobert una guia detallada sobre les ordres kill, pkill i killall.

Per a aquells que executen el servidor X, hi ha una altra eina anomenada xkill que pot matar un procés des de la seva finestra X sense passar el nom del procés ni el seu PID.

La utilitat xkill obliga el servidor X a tancar les comunicacions amb el seu client, la qual cosa provoca la matança del client pel seu recurs X. xkill, que forma part de les utilitats X11, és molt útil per matar finestres innecessàries.

Admet opcions com connectar-se a un servidor X específic (-display nom de visualització) mitjançant el número de visualització quan s'executen diversos servidors X en un amfitrió simultàniament i matar tots els clients (-all, no recomanat) amb finestres de primer nivell a la pantalla, així com tenir en compte frame (-frame).

Per obtenir una llista de tots els clients que podeu executar:

$ 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 es passa cap identificador de recurs amb id, xkill converteix el punter del ratolí en un símbol especial, similar a X. Només cal que feu clic a la finestra que voleu matar i això matarà la seva comunicació amb el servidor o diu que el programa es mata.

$ xkill

És important notar que xkill no garanteix que tancar la seva comunicació la matarà/avortarà amb èxit. La majoria de l'aplicació s'eliminarà quan es tanqui la comunicació amb el servidor. No obstant això, alguns encara poden estar en funcionament.

Punts que cal esmentar aquí:

  1. Aquesta eina només funciona quan el servidor X11 s'està executant, ja que xkill forma part de la utilitat X11.
  2. No confongueu amb Tancar i matar un recurs. Mentre mateu un recurs, podeu esperar que no surti net.
  3. Això no és un reemplaçament de la utilitat kill.

No, no cal que activeu xkill des de la línia d'ordres de Linux. Podeu configurar una drecera de teclat i trucar a xkill només prement la mateixa combinació de tecles.

A continuació s'explica com configurar una drecera de teclat en un entorn d'escriptori gnome3 típic.

Aneu a Configuració -> Seleccioneu el teclat, feu clic a + i afegiu el nom i l'ordre. Feu clic a la nova entrada i premeu la tecla que voleu utilitzar com a combinació de tecles de drecera. Vaig fer Ctrl+Alt+Maj+x.

La propera vegada que vulgueu matar un recurs X, només heu de trucar a la combinació de tecles (Ctrl+Alt+Maj+x) i notareu que el punter del ratolí s'ha canviat en x. Feu clic al x recurs que voleu matar i ja està!