如何恢复丢失的 GUI/窗口

如何恢复丢失的 GUI/窗口

我现在面临这种情况:我在计算服务器上运行几个 Matlab 实例(服务器操作系统:Xubuntu 14.04,我的本地机器操作系统:Ubuntu 14.04)。我使用 NoMachine 连接到服务器。NoMachine 通常工作正常,但上次 NoMachine 冻结了,我不得不强制关闭 NoMachine。当我重新启动 NoMachine 并重新连接到服务器时,我发现我的 Matlab 实例的所有窗口/GUI 都消失了。它们现在在后台运行,我可以在 top 中看到它们,它们仍然在消耗大量的 CPU 资源。另外,我仍然可以在输出文件夹中观察到数据处理输出,我指示 Matlab 保存处理后的数据,所以我可以肯定地说它们在后台运行良好。但是,我丢失了所有 Matlab 实例的所有窗口/GUI。

在图像中,top 命令显示 matlabs 仍在运行并消耗大量 CPU 资源

我如何恢复这些窗口/GUI?更具体地说,我想恢复在后台运行的 matlab 实例的这个窗口。

这是我想要恢复的 Matlab GUI

我可以从顶部看到 Matlab 的 PID。那么,是否存在一些内置终端命令(如 setWindowToFront(PID))可以帮助我通过 PID 恢复丢失的窗口?最好是内置命令,因为我没有权限在学校服务器机器上安装任何包/应用程序。

ps. 我无法关闭 matlab 实例并重新启动 matlab,因为计算需要一个月才能完成,而我现在才完成了一半。

ps. bg 或 fg 命令无济于事,它们显示“没有作业”

附言:由于我只有一个工作区,因此 Windows/GUI 不能位于其他工作区中。

ps. 我一开始并没有通过终端启动 matlab。我是通过鼠标点击启动 matlab 的。

非常感谢!

答案1

  1. 获取一份wmctrl,这是一个简单的单命令包

    apt-get download wmctrl
    mkdir wmctrl_deleteme
    dpkg-deb -X wmctrl_1.07-7_amd64.deb wmctrl_deleteme/
    cd wmctrl_deleteme/usr/bin/
    

    最好放进去~/bin方便使用。

  2. 检查这些窗口是否由 WM 管理

    ./wmctrl -l
    
  3. 如果有列出,请尝试此选项(man wmctrl

       -R <WIN>
              Move the window <WIN> to the current desktop, raise the window, and give it focus.
    

    使用窗口标题或 id,示例:

    ./wmctrl -R Home
    ./wmctrl -i -R 0x02e00238
    

相关内容