如何在 Linux 中处理应用程序/操作系统冻结

基于 Linux 的操作系统被认为比其他操作系统更稳定。 证明这一点的事实是 Linux 为世界上 95% 以上的超级计算机提供支持。 但是,稳定性和性能并不意味着 Linux 系统不会遇到应用程序或操作系统冻结。

可能有许多不同类型的冻结,例如一个或多个应用程序冻结、鼠标与应用程序一起停止响应以及最后所有内容(包括键盘)冻结的情况。 在本文中,我们将详细讨论每种情况下可用的各种解决方案以及应用它们的顺序。

笔记:本文中提到的所有解决方案/技术均已在 Ubuntu(版本 16.04)上进行了测试。 他们可能会也可能不会在其他发行版上工作。

申请冻结

当应用程序冻结时,第一步也是最明显的步骤是 close 该应用程序通过单击 close 按钮(内部带有“x”的圆形按钮)位于应用程序窗口的左上角。 通常,在冻结的情况下,当您执行此操作时,会弹出一个小窗口框,说明应用程序没有响应,您可以选择终止进程或等待应用程序响应。

您可以单击“强制退出”按钮以摆脱应用程序。 但是,如果这不起作用,下一步应该是运行 xkill 命令行终端上的命令。 (您也可以为其创建键盘快捷键。)一旦运行该命令,您的鼠标指针将变为 X。

ubuntu-freeze-xkill

现在,在这种状态下,在任何应用程序窗口上单击鼠标左键都会杀死该应用程序。

虽然“xkill”是摆脱冻结应用程序的绝佳解决方案,但您不能在没有 GUI 的进程/应用程序上使用此技术。 不用担心,因为我们已经有一些众所周知的解决方案,例如通过按“Ctrl + C”向应用程序/进程发送 SIGINT 信号或使用 kill 命令。

当鼠标也停止工作时

如果你的鼠标也冻结了怎么办? 在这种情况下,最方便的选择是抓住一个命令行终端,您可以通过按“Alt + F2”启动它,输入 gnome-terminal,然后按 Enter.

ubuntu-freeze-gnome-终端

不用说,一旦你在命令行上,你可以很容易地杀死一个进程/应用程序,不管它是否基于 GUI。

如果由于某种原因上述解决方案不起作用,您可以通过按“Alt + Ctrl + F1”切换到虚拟终端。 到达那里后,只需输入您的登录详细信息,您现在就可以通过命令行访问您的系统。 杀死无响应的进程后,您可以通过按“Ctrl + Alt + F7”恢复到 GUI 会话(从技术上讲,这是运行 X 服务器的控制台)。 或者,如果需要,您还可以通过运行以下命令从虚拟控制台中重新启动 GUI:

当一切都冻结

不幸的是,有时一切(包括您的键盘)都变得无响应。 您应该如何应对这种情况? 这 神奇的 SysRq 密钥 来这里救你。 不像它的名字所暗示的那样,神奇的 SysRq 键实际上是一个组合键,可以让您直接与内核对话,而不管您的系统当前处于何种状态,从而允许您解决似乎没有任何响应的冻结/挂起。

以下是我们正在谈论的组合键:

  • Alt + 系统请求 + F:这个组合键要求内核一次杀死一个进程(最昂贵的一个)。
  • Alt + SysReq + K:此组合键要求内核一次性杀死所有应用程序/进程。
  • Alt + SysReq + REISUB:此组合键要求内核执行干净的系统重启。

以下是第三个组合键(在上面的列表中)执行干净重启的方式:

  • R: 切换到 XLATE 模式
  • : 向除 init 之外的所有进程发送 SIGTERM
  • 一世: 向除 init 以外的所有进程发送 SIGKILL
  • 小号: 同步所有挂载的文件系统
  • ü: 将所有文件系统重新挂载为只读
  • : 重启

提示: 你可以记住 REISUB 的组合是 BUSIER 的反面。

很明显,“Alt + SysReq + REISUB”组合键是比冷重启系统更好的选择。

笔记:要使神奇的 SysRq 密钥起作用,请确保“/etc/sysctl.d/10-magic-sysrq.conf”文件中的“kernel.sysrq”参数设置为 1。

ubuntu-freeze-sysrq-conf

结论

您可以使用许多技术来摆脱 Ubuntu 中的应用程序/操作系统冻结情况。 这里值得强调的一点——对你来说很重要——是这些技术可以让你免于执行物理重置或电源开/关,理想情况下,这应该是大多数情况下的最后手段。

图片来源: /家

订阅我们的新闻!

我们最新的教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策并且欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅