Dadas las ID producidas por wmctrl -l
, me gustaría poder matar el proceso vinculado a la ID de la ventana.
¿Cómo sugerirías hacerlo?
command-line
bash
batch
wmctrl
usuario123456
fuente
fuente
Si usa
wmctrl -lp
los PID, están en la tercera columna.Para una ID de ventana determinada, puede usar
(reemplace WID con su ID de ventana)
fuente
col3
.wmctrl
en realidad tiene otra bandera-p
para listar PID.Una vez que sepa esto, es un ejercicio trivial de extraer el PID de esa ventana y pasarlo a
kill
fuente
También puedes usar
xkill -id [id]
. La utilidad xkill funciona de manera diferente a las otras respuestas: en lugar de cerrar la ventana o eliminar el proceso directamente, le indica al servidor X que desconecte al cliente que creó la ventana. Esto normalmente tiene el efecto de hacer que el proceso finalice incluso para un proceso remoto.Ventajas y desventajas de cada enfoque:
wmctrl -c
cierra una ventana "con gracia", como si usted mismo hubiera hecho clic en el botón Cerrar del administrador de ventanas. Esto puede no matar el proceso, y puede que ni siquiera cierre la ventana, si la aplicación no quiere que la ventana se cierre o se congele.El uso de pid from
wmctrl -lp
withkill
está garantizado para matar el proceso, pero puede requerir trabajo adicional o no funcionar en absoluto si el proceso puede ejecutarse en una máquina diferente.xkill
es posible que no finalice el proceso si está diseñado para poder recuperarse de un bloqueo del servidor X o pérdida de conectividad de red, pero la mayoría de las aplicaciones simplemente se bloquean en estas circunstancias. En cualquier caso, las ventanas se habrán ido. Y los procesos remotos y locales se manejan de manera idéntica.fuente
uso
xkill
. Simplemente escribaxkill
su terminal y haga clic en la ventana requerida.fuente