我在 Ubuntu 10.04 中运行带有 compiz 的 Gnome。有时 GUI 会冻结。我可以移动鼠标,但无法与程序交互。我唯一能做的就是使用 Alt+Ctrl+F(n) 进入终端窗口。从那里登录并执行 sudo 重启。除了重启之外,我还可以在终端上做什么来处理出现的问题?
答案1
当出现问题时,我经常使用的一个解决方案是使用 Ctrl-AltFx (F1-F6) 切换到另一个控制台。Ctrl-Alt-F7 应该会带您返回图形屏幕。这应该会带您进入文本登录提示。
如果这不起作用并且您安装了 OpenSSH(sudo apt-get install openssh),您可以远程 ssh 到您的盒子并得到相同的提示。
然后,您可以以自己的身份登录,使用 su 切换到 root,并查看当前正在运行的应用程序。这需要您对 ps、kill、grep 和 less 等命令有一点经验。
ps - ef | 更多
上述命令将显示当前正在运行的所有进程,并且您可以使用“更多...”提示来读取输出。
杀死-9
上述命令将终止编号为####的进程。
ps -ef | grep ora | 更多
上述命令将显示所有以字母“ora”开头的进程,例如 Oracle 程序。还会让您看到“更多...”提示。
执行此操作时需要小心。您可能会终止整个系统。我这样做的方法是查看列表底部的进程,这些进程将启动最新进程。这些进程更可能是冻结系统的进程,而终止这些进程更有可能解冻 X 环境,而无需真正重新启动整个系统。在进程列表中,您将看到两个数字。第一个(最左边)是进程编号本身,旁边的是启动它的进程。
在进程命令中,您可能能够识别您启动的最新程序的名称,并首先终止这些程序。
最好的情况下,您可以找到并终止有问题的程序。最坏的情况下,您将冻结系统,直到您关闭电源。谨慎操作................................
但您有机会复制关键文件、执行其他操作等。
答案2
就像 private_meta 所说的那样,您可能需要重新启动 X。这将停止所有 GUI 进程的运行,包括从 gui 终端窗口启动的所有进程。
Ctrl+Alt+Backspace 在 Ubuntu 上不起作用,他们禁用了这个快捷方式。您可以启用它(不记得具体如何启用,但谷歌搜索应该很容易)或使用正确的组合,即 SysRq + K。在某些布局中,SysRq 可能是另一个键的辅助功能,因此例如在 qwertz 键盘上,您实际上是按 AltGr + Print + K。
有关 SysRq 组合键的其他用法,请阅读这篇维基百科文章。它给予您对系统的控制权,超出了您可能需要的范围。
答案3
在最近的(upstart 启用)Ubuntu 版本中您可以输入:
sudo restart gdm
有时您无法切换到文本控制台,但仍然可以使用另一台 PC 上的 ssh 登录。然后也可以重新启动 gdm,这可能会修复挂起的显示驱动程序。
答案4
大部分情况下,应该可以通过 Ctrl+Alt+Backspace 重新启动窗口管理器。虽然这会终止前台应用程序,但仍然不是完全重新启动,这对您来说可能是一种妥协。