如何恢复给定 pid 的窗口?在某些程序的窗口消失的情况下(有时会发生在我身上),它会很有用。
例如,每次当我要关闭 hexchat 时,它都会显示一个对话框以供确认。如果我单击取消,无论如何该窗口都会消失,但该进程将继续在后台运行。(我可以 pgrep 它的 id )。
鉴于我知道pid,是否可以恢复窗口?
不幸的是,没有\xe2\x80\x94,如果X Windows应用程序失去连接并且其窗口被破坏,通常没有办法让它重新连接到窗口系统。而windows一般只有在程序本身有bug \xe2\x80\x94 时才会消失,在这种情况下,进程可能在不知情的情况下处于挂起状态,等待永远不会发生的 I/O,因为它没有意识到它的窗户已经消失了。
\n\n除非应用程序的设计非常罕见,并且允许您向其发送特殊信号或消息以重新连接到 X 服务器,或重建新窗口,或者除非它仍然作为图标或停靠图标出现在屏幕上的某个位置,并且您可以通过这种方式与它交互,必须简单地杀死该程序的进程,然后您必须重新启动它。
\n\n关闭最后一个窗口而不退出进程的行为通常是一个错误,您可以向上游报告有关应用程序的错误。
\n\n(注意:有极少数例外,例如网络浏览器即使最后一个窗口关闭后仍会保持正在运行的进程 \xe2\x80\x94 但在这些情况下,只需重新单击浏览器的图标或从命令行重新运行它即可告诉已经在运行的进程打开一个新窗口。同样,如果要起作用,则必须专门编写一个应用程序来处理临时无窗口的情况。)
\n