当前位置: 首页>>技术教程>>正文


linux – 如何在Ubuntu中重启冻结的屏幕而不丢失任何打开的窗口?

, ,

问题描述

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

最佳方法

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

现在我为Unity买到了它(我只是用Unity替换了我的GNOME shell,而没有注销或关闭Windows):

  1. 转到tty1 [Ctrl] + [Alt] + [F1]

  2. 键入DISPLAY=:0,以便程序知道在哪个端口上查找X-Server

  3. export DISPLAY

  4. unity --replacegnome-shell --replace(您也可以将GNOME-Shell统一替换为Unity,也可以将GNOME-Shell替换为Unity)

仅当未冻结X-Server或GNOME时,才冻结,而只有Unity或GNOME-Shell才冻结。

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

窗口的内容由X-Server管理,而窗口的位置和边框由集成于一体的窗口管理器或GNOM-shell管理,因此有一种方法可以只替换它们而不重新启动X-Server上的应用程序。

PS:我只是在描述我的理解,因此,如果我在某些方面有误,请编辑并纠正我。

编辑:对于GNOME-Shell,还有另一种重新启动它的方法。更改为tty后,只需键入pkill -HUP gnome-shell,我不知道Unity是否有类似的东西。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8029.html,未经允许,请勿转载。