A janela está oculta, mas o processo está em execução [fechado]

12

Como posso restaurar as janelas de um determinado pid? Seria útil em algumas situações em que a janela de um determinado programa desaparece (às vezes acontece comigo).

Por exemplo, toda vez que eu estou indo para fechar o hexchat, ele mostra um diálogo para confirmação. Se eu clicar em cancelar, a janela desapareceu de qualquer maneira, mas o processo continua sendo executado em segundo plano. (Eu posso pgrep é id).

É possível restaurar a janela, dado que conheço o pid?

    
por userEng15 16.03.2013 / 06:38

5 respostas

3

Como Brandon Rhodes explicou, se a janela é destruída / ocultada pelo processo pai, não há como recuperar / recriar / mostrar de fora do processo ou da própria aplicação.

Você pode confirmar no gerenciador de janelas, tente: wmctrl -l -p , nenhuma janela relacionada ao seu PID está listada.

Então, é possível que hexchat ainda seja responsivo, tente:

hexchat -e --command="gui show"

-e Abra o URL ou execute o comando em um HexChat existente

Referências:

por user.dz 03.05.2014 / 14:52
2

Infelizmente, não - geralmente não há como fazer com que um aplicativo X Windows seja reconectado ao sistema de janelas se perder sua conexão e sua janela for destruída. E as janelas geralmente só desaparecem se houver um bug no próprio programa - nesse caso, o processo provavelmente está em estado suspenso sem saber, aguardando a E / S que nunca ocorrerá porque não percebe que sua janela foi embora .

A menos que o aplicativo tenha um design muito raro e lhe permita enviar um sinal ou mensagem especial para reconectar ao servidor X ou reconstruir uma nova janela, ou a menos que ainda esteja presente na tela em algum lugar como um ícone ou docked ícone e você pode interagir com ele dessa forma, o processo do programa deve simplesmente ser morto e você tem que reiniciá-lo.

O comportamento de fechar a última janela sem sair do processo geralmente é um bug que você pode relatar no envio de dados sobre o aplicativo.

(Nota: há raras exceções, como navegadores que mantêm um processo em execução mesmo depois que a última janela é fechada - mas, nesses casos, clicar novamente no ícone do navegador ou executá-lo novamente na linha de comando processo já em execução para abrir uma nova janela. Mais uma vez, um aplicativo deve ser especialmente escrito para lidar com a ausência temporária de janelas se isso for funcionar.)

    
por Brandon Rhodes 24.04.2014 / 19:35
1

Se o processo estiver simplesmente em segundo plano, talvez esta resposta se encaixe aqui também:

Use fg para trazer o processo de volta ao primeiro plano.

Veja a resposta completa para mais instruções.

    
por j08lue 27.03.2014 / 11:15
1

Eu não sei o hexchat, mas possivelmente o programa usa um ícone de bandeja que torna possível recuperar a janela principal. Infelizmente, há várias implementações de bandeja no Linux e nem todas funcionam juntas.

Eu tive um problema com o programa RadioTray que não apareceu mais depois da atualização para o Xubuntu 14.04. A solução foi reconfigurá-lo (o arquivo ~ / .local / share / radiotray / config.xml tinha a opção 'gui_engine' com os 3 valores possíveis 'appindicator', 'systray' e 'chooser').

Se isso não ajudar, tente verificar as opções / preferências do seu aplicativo. Possivelmente você encontra uma opção 'Minimizar para bandeja'. Desativar e tente fechar a janela novamente.

    
por Daniel Alder 03.05.2014 / 12:39
0

Você pode tentar Ctrl + Alt + Del e finalizar o processo. Espero que isto ajude. Isso é o que eu faço quando um programa no Ubuntu congela ou age de forma engraçada para mim.

    
por John H 03.05.2014 / 13:49

Tags