![如何在管道损坏后恢复进程 GUI](https://linux22.com/image/87263/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%AE%A1%E9%81%93%E6%8D%9F%E5%9D%8F%E5%90%8E%E6%81%A2%E5%A4%8D%E8%BF%9B%E7%A8%8B%20GUI.png)
我使用 ssh -X 从远程计算机的命令行启动了一个 GUI 进程。我知道运行它需要很长时间,因此我将其留在后台并否认。
正如我担心的那样,在结束之前我遇到了连接问题,管道破裂了。在我能够重新连接后,我使用了雷普特尔恢复进程的所有权。到目前为止,一切都很好。但是既然我再次拥有了该进程,有什么办法可以重新打开它的 GUI 吗?
答案1
那可能是不可能的。当进程失去与 X 服务器的连接时,它通常会清除与 GUI 关联的所有内部数据。不一定,但这需要程序员付出巨大的努力(他们必须围绕标准库进行工作)。如果现有 GUI 窗口已关闭,大多数程序也不提供打开新 GUI 窗口的选项。
如果您担心连接不稳定,可以使用X普拉作为应用程序和 X 服务器之间的代理。 Xpra 在应用程序和服务器之间创建了一层隔离层,允许应用程序从一台服务器移动到另一台服务器;它对于 GUI 应用程序的作用就像 Screen 对于文本模式应用程序的作用一样。然而,启动应用程序时必须使用 Xpra;事后就太晚了。