Por lo general, cuando ejecuto la aplicación en un entorno gráfico, cuando quiero cerrarla, hago clic X
en la esquina superior izquierda de la ventana o voy a File > Close
.
A veces me gustaría cerrar estos programas de forma remota a través de ssh desde la terminal usando la línea de comando, ahora uso el kill
comando pero me pregunto si hace lo mismo que salir de la aplicación correctamente.
La man kill
señal predeterminada parece ser 15) SIGTERM, ¿esta señal le dirá a la aplicación que estoy tratando de cerrar para limpiar, cerrar archivos abiertos, guardar cosas?
¿Hay una mejor manera si quiero hacerlo desde la terminal?
command-line
Miguel
fuente
fuente
Respuestas:
La forma típica de cerrar la aplicación con gracia es usar
kill -TERM 1234
, donde1234
está el PID de la ventana. Sin embargo, el problema es que las aplicaciones gráficas están diseñadas para escuchar una señal específica del propio servidor X, no para escuchar laTERM
señal.Eso significa que necesitaría algún tipo de agente entre usted y el servidor X para comunicar que desea enviar la señal adecuada. Por supuesto, puede escribir un programa en C, sin embargo, ya existe un
wmctrl
programa (no sorprendentemente escrito en C) que hace exactamente eso.El uso de
wmctrl
es simple:No está instalado por defecto, así que consíguelo con
sudo apt-get install wmctrl
Hay muchos usos para
wmctrl
mucho más que simplemente cerrar ventanas, así que vea más de mis respuestas y las de Jacob Vlijm para ver ejemplos de scripts donde se ha utilizadofuente
wmctrl -l
enumerará todas las ventanas y dará la identificación numérica en hexadecimal en la primera columna. =)Minimize to tray on close
ywmctrl -c
solo cerrará una ventana, no la aplicación en sí, se mantendrá funcionando minimizado en la bandeja.Creo que vale la pena agregar que
wmctrl -xl
generará resultados como este:Donde
x
solicita que la clase de ventana esté en la salida. Esta es a menudo la forma más fácil de cerrar el mismo programa cada vez. Luego, podemos suministrar la clase de ventana al cerrarla:Este ejemplo cerrará speedcrunch.
fuente