Ubuntu – Window is hidden but process is running

unity

How may I restore the windows for a given pid? It would be useful in some situations where the window of a certain program disappears (happens to me sometimes).

For example, every time when i'm heading to close hexchat, it shows a dialog for confirmation. If i click cancel, the window is gone anyway, but the process continues running in the background. ( I can pgrep it's id ).

Is it possible to restore the window, given I know the pid?

Best Answer

Unfortunately, no — there is generally no way to get an X Windows application to reconnect to the windowing system if it loses its connection and its window is destroyed. And windows will generally only disappear if there is a bug in the program itself — in which case the process is probably in a hung state without knowing it, waiting on I/O that will never occur because it does not realize its window has gone away.

Unless the application is of a very rare design and lets you send it a special signal or message to reconnect to the X server, or rebuild a new window, or unless it is still present on the screen somewhere as an icon or docked icon and you can interact with it that way, the program's process must simply be killed and you have to restart it.

The behavior of closing its last window without exiting the process is generally a bug that you can report upstream about the application.

(Note: there are rare exceptions, like web browsers that keep a running process even once their last window is closed — but in those cases, re-clicking the browser's icon or re-running it from the command line simply tells the already-running process to open a new window. Again, an app has to be specially written to handle temporary windowlessness if this is to work.)

Related Question