如何在不丢失任何打开的窗口的情况下重新启动 Ubuntu 中冻结的屏幕?

如何在不丢失任何打开的窗口的情况下重新启动 Ubuntu 中冻结的屏幕?

我的一台运行 Ubuntu 12.04 LTS 的设备屏幕冻结了。通常我只需跳转到可用的 tty,即Ctrl- Alt-F1并执行命令/etc/init.d/lightdm restartservice lightdm restart。但这会杀死我打开的所有内容。我该如何避免这种情况?

答案1

免责声明:根据 Brenden 的评论,这可能已经过时,并且不再适用于较新版本的 Ubuntu。另外,请做好准备,您可能会丢失打开的窗口。

现在我为 Unity 得到了它(我刚刚用 unity 替换了我的 GNOME shell,无需注销或关闭窗口):

  1. 转到 tty1 [Ctrl]+[Alt]+[F1]
  2. 输入DISPLAY=:0以便程序知道在哪个端口上找到 X-Server
  3. export DISPLAY
  4. unity --replace或者gnome-shell --replace(您也可以用 unity 替换 GNOME-Shell 或用 GNOME-Shell 替换 Unity)

仅当 X-Server 或 GNOME 没有冻结,而 Unity 或 GNOME-Shell 冻结时,此功能才有效。

工作原理:程序与 X-Server 之间通过网络套接字进行通信以显示其 UI。这通常是在“localhost:0”短“:0”。通过设置 DISPLAY 变量,程序知道在哪里可以找到 X-Server 并与其进行通信,因此即使程序在 tty1 上运行,程序也会显示在 tty7 上的 X-Server 上。

窗口的内容由 X-Server 管理,而窗口的位置和边框由 Unity 或 GNOM-shell 中集成的窗口管理器管理,因此可以只替换它们,而无需重新启动 X-Server 上的应用程序。

附言:我只是描述我的理解,所以如果我在某些地方有误,请编辑并纠正我。

编辑: 对于 GNOME-Shell,还有另一种方法可以重新启动它。切换到 tty 后,只需输入pkill -HUP gnome-shell,我不知道 Unity 是否有类似的功能。

答案2

如果你的屏幕冻结了,但鼠标仍在移动(但左键单击没有结果) - 尝试

  1. 关闭可疑(锁定过多内存)的应用程序;

您可以使用键盘 alt-tab 选择,使用 alt-f4 关闭。

  1. 右键单击任意位置。

不知道为什么会发生这种情况以及为什么右键单击有效,但至少它有效。

相关内容