![如何恢复丢失的 GUI/窗口](https://linux22.com/image/987237/%E5%A6%82%E4%BD%95%E6%81%A2%E5%A4%8D%E4%B8%A2%E5%A4%B1%E7%9A%84%20GUI%2F%E7%AA%97%E5%8F%A3.png)
我现在面临这种情况:我在计算服务器上运行几个 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 的 PID。那么,是否存在一些内置终端命令(如 setWindowToFront(PID))可以帮助我通过 PID 恢复丢失的窗口?最好是内置命令,因为我没有权限在学校服务器机器上安装任何包/应用程序。
ps. 我无法关闭 matlab 实例并重新启动 matlab,因为计算需要一个月才能完成,而我现在才完成了一半。
ps. bg 或 fg 命令无济于事,它们显示“没有作业”
附言:由于我只有一个工作区,因此 Windows/GUI 不能位于其他工作区中。
ps. 我一开始并没有通过终端启动 matlab。我是通过鼠标点击启动 matlab 的。
非常感谢!
答案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
方便使用。检查这些窗口是否由 WM 管理
./wmctrl -l
如果有列出,请尝试此选项(
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