La ventana está oculta pero el proceso se está ejecutando [cerrado]

13

¿Cómo puedo restaurar las ventanas para un pid dado? Sería útil en algunas situaciones donde la ventana de un determinado programa desaparece (a veces me pasa a mí).

Por ejemplo, cada vez que me dirijo a cerrar hexchat, muestra un cuadro de diálogo para confirmación. Si hago clic en cancelar, la ventana desaparece de todos modos, pero el proceso continúa ejecutándose en segundo plano. (Puedo pgrep es id).

¿Es posible restaurar la ventana, dado que sé el pid?

userEng15
fuente
¿Te diste cuenta de esto? Esto todavía me sucede ocasionalmente, parece que están teniendo problemas para solucionar este problema.
Jason Kleban
No me acuerdo exactamente. Tuve que volver a las ventanas por un tiempo. Creo que alguien me dijo en el chat que se había solucionado en la rama de desarrollo en ese momento. Pero si dices que todavía sucede, entonces el error sigue ahí ... Lamento no ser de ninguna ayuda.
userEng15
Yo uso xdotool, puede funcionar. 'xdotool search -name hexchat' y 'xdotool windowactivate theWindowId'
zayn

Respuestas:

3

Desafortunadamente, no, generalmente no hay forma de hacer que una aplicación X Windows se vuelva a conectar al sistema de ventanas si pierde su conexión y se destruye su ventana. Y las ventanas generalmente solo desaparecerán si hay un error en el programa en sí mismo, en cuyo caso el proceso probablemente esté bloqueado sin saberlo, esperando la E / S que nunca ocurrirá porque no se da cuenta de que su ventana se ha ido. .

A menos que la aplicación sea de un diseño muy raro y le permita enviarle una señal o mensaje especial para volver a conectarse al servidor X, o reconstruir una nueva ventana, o a menos que todavía esté presente en la pantalla en algún lugar como un icono o icono acoplado y usted puede interactuar con él de esa manera, el proceso del programa simplemente debe ser eliminado y debe reiniciarlo.

El comportamiento de cerrar su última ventana sin salir del proceso es generalmente un error que puede informar sobre la aplicación.

(Nota: hay raras excepciones, como los navegadores web que mantienen un proceso en ejecución incluso una vez que se cierra su última ventana, pero en esos casos, volver a hacer clic en el icono del navegador o volver a ejecutarlo desde la línea de comandos simplemente le dice al usuario que ya se está ejecutando proceso para abrir una nueva ventana. Nuevamente, una aplicación tiene que estar especialmente escrita para manejar la falta de ventanas temporal si esto va a funcionar).

Brandon Rhodes
fuente
3

Como explicó Brandon Rhodes, si la ventana se destruye / oculta por su proceso padre, no hay forma de recuperarla / recrearla / mostrarla desde fuera del proceso o la aplicación misma.

Puede confirmar desde el administrador de ventanas, intente: wmctrl -l -pno aparece ninguna ventana relacionada con su PID.

Entonces, es posible que hexchattodavía responda, intente:

hexchat -e --command="gui show"

-e Abrir URL o ejecutar comando en un HexChat existente

Referencias

user.dz
fuente
1
Funcionó a la perfección.
amar
1

Si el proceso es simplemente en segundo plano, tal vez esta respuesta también encaje aquí:

Use fgpara volver a poner el proceso en primer plano.

Vea la respuesta completa para más instrucciones.

j08lue
fuente
1

No conozco hexchat, pero posiblemente el programa utiliza un icono de bandeja que permite recuperar la ventana principal. Desafortunadamente, hay implementación de múltiples bandejas en Linux y no todas funcionan juntas.

Tuve un problema con el programa RadioTray que ya no apareció después de la actualización a Xubuntu 14.04. La solución fue reconfigurarlo (el archivo ~ / .local / share / radiotray / config.xml tenía la opción 'gui_engine' con los 3 valores posibles 'appindicator', 'systray' y 'chooser').

Si esto no ayuda, intente verificar las opciones / preferencias de su aplicación. Posiblemente encuentre una opción 'Minimizar a la bandeja'. Inhabilítelo e intente cerrar la ventana nuevamente.

Daniel Alder
fuente
0

Puede probar Ctrl + Alt + Supr, luego finalizar el proceso. Espero que esto ayude. Esto es lo que hago cuando un programa en Ubuntu se congela o actúa de manera extraña para mí.

John H
fuente