Como posso restaurar as janelas para um determinado pid? Seria útil em algumas situações em que a janela de um determinado programa desaparece (às vezes acontece comigo).
Por exemplo, sempre que vou fechar o hexchat, ele mostra uma caixa de diálogo para confirmação. Se clicar em cancelar, a janela desapareceu de qualquer maneira, mas o processo continua em execução em segundo plano. (Eu posso pgrep é id).
É possível restaurar a janela, desde que eu saiba o pid?
Respostas:
Infelizmente, não - geralmente não há como fazer com que um aplicativo X Windows se reconecte ao sistema de janelas, se ele perder sua conexão e sua janela for destruída. E o Windows geralmente desaparece apenas se houver um erro no próprio programa - nesse caso, o processo provavelmente está em um estado travado sem o saber, aguardando a E / S que nunca ocorrerá porque não percebe que sua janela se foi. .
A menos que o aplicativo tenha um design muito raro e permita que você envie um sinal ou mensagem especial para reconectar-se ao servidor X ou reconstruir uma nova janela ou a menos que ainda esteja presente na tela em algum lugar como um ícone ou ícone ancorado e você Para interagir com ele dessa maneira, o processo do programa deve ser simplesmente eliminado e você deve reiniciá-lo.
O comportamento de fechar sua última janela sem sair do processo geralmente é um bug que você pode relatar a montante sobre o aplicativo.
(Observação: existem raras exceções, como navegadores da web que mantêm um processo em execução mesmo após a última janela ser fechada - mas, nesses casos, clicar novamente no ícone do navegador ou na linha de comando simplesmente informa ao usuário que já está em execução processo para abrir uma nova janela. Novamente, um aplicativo precisa ser especialmente escrito para lidar com a ausência temporária de janelas, para que isso funcione.)
fonte
Como Brandon Rhodes explicou, se a janela for destruída / oculta pelo processo pai, não há como recuperá-la / recriá-la / mostrá-la de fora do processo ou do próprio aplicativo.
Você pode confirmar no gerenciador de janelas, tente
wmctrl -l -p
:, nenhuma janela relacionada ao seu PID está listada.Portanto,
hexchat
é possível que ainda seja responsivo, tente:-e
Abra o URL ou execute o comando em um HexChat existenteReferências:
man hexchat
man wmctrl
fonte
Se o processo estiver simplesmente em segundo plano, talvez essa resposta também se encaixe aqui:
Use
fg
para trazer o processo de volta ao primeiro plano.Veja a resposta completa para mais instruções.
fonte
Não conheço o hexchat, mas possivelmente o programa use um ícone de bandeja que permita recuperar a janela principal. Infelizmente, existem várias implementações de bandeja no linux e nem todas elas funcionam juntas.
Eu tive um problema com o programa RadioTray, que não apareceu mais após a atualização para o Xubuntu 14.04. A solução foi reconfigurada (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 a opção 'Minimizar para a bandeja'. Desative-o e tente fechar a janela novamente.
fonte
Você pode tentar Ctrl + Alt + Del e finalizar o processo. Espero que isto ajude. É o que faço quando um programa no Ubuntu congela ou age de maneira engraçada para mim.
fonte