当Ubuntu冻结时我该怎么办?

所有操作系统有时都会冻结,Ubuntu也不例外。 我应该怎么做才能重新获得控制权……

  • 只有一个程序停止响应?
  • 什么都没有响应鼠标点击或按键?
  • 鼠标完全停止移动?
  • 我有Intel Bay Trail CPU?

在决定拔下电源插头之前,我应该以什么顺序尝试各种解决方案?

启动Ubuntu时我该怎么办? 我可以遵循诊断程序吗?

当单个程序停止工作时:

当程序窗口停止响应时,通常可以通过单击窗口左上角的X形关闭按钮来停止响应。 这通常会导致一个对话框说明程序没有响应(但你已经知道了)并向你提供了杀死程序或继续等待它响应的选项。

有时这不会按预期工作。 如果无法通过常规方式关闭窗口,可以按Alt + F2 ,键入xkill ,然后按Enter键 。 然后您的鼠标光标将变为X. 将鼠标hover在违规窗口上并左键单击以将其终止。 右键单击将取消并将鼠标恢复正常。

另一方面,如果程序是从终端运行的,通常可以使用Ctrl + C将其暂停。 如果没有, 找到其命令的名称和进程ID ,并告诉程序尽快结束kill [process ID here] 。 它发送默认信号SIGTERM15 )。 如果所有其他方法都失败了,作为最后的手段发送SIGKILL9 ): kill -9 [process ID here] 。 请注意,您应该只使用SIGKILL作为最后的手段,因为内核会立即终止该进程,而无法进行清理。 它甚至没有得到信号 – 它只是停止存在。

(如果你有权kill -9kill -9的进程总是有效。在某些特殊情况下,进程仍然按pstop列出(作为“僵尸”) – 在这种情况下,程序被杀死,但是进程保留表项,因为以后需要它。)

当鼠标停止工作时:

如果键盘仍然有效,请按Alt + F2并运行gnome-terminal (或者,如果这些无法启动,请按Alt + Ctrl + F1并使用您的用户名密码登录 )。 从那里你可以解决问题。 我不会在这里进行鼠标故障排除,因为我还没有研究过它。 如果您只想尝试重新启动GUI,请运行sudo service lightdm restart 。 这应该会关闭GUI,然后GUI将尝试重新生成,将您带回登录屏幕。

当您拥有Intel Bay Trail CPU时

请参阅https://askubuntu.com/a/803649/225694 。

当所有东西,钥匙和鼠标等都停止工作时:

首先尝试凤凰城回答中概述的Magic SysReq方法。 如果不起作用,请按计算机机箱上的“ 重置”按钮。 如果即使这样也不起作用,您只需要重新启动机器。
愿你永远达不到这一点。

如果它完全锁定,你可以REISUB它,这是一个更冷的重新启动计算机的更安全的替代品。

REISUB:

在按住AltSysReq(打印屏幕)键的同时,键入R E I S U B。

 R: Switch to XLATE mode E: Send Terminate signal to all processes except for init I: Send Kill signal to all processes except for init S: Sync all mounted file-systems U: Remount file-systems as read-only B: Reboot 

如果您需要记住它,那么REISUB就会倒退,就像“系统比它应该更繁忙 ”一样。 或者助记 – R eboot; E ven; f; 系统; 不管怎样 B roken。

这是SysReq密钥:

SysReq键

注意:与重启整个系统相比,存在更少的激进方式。 如果SysReq键有效,则可以使用Alt + SysReq + F逐个终止进程。 内核每次都会杀掉大部分“昂贵”的进程。 如果要终止一个控制台的所有进程,可以发出Alt + SysReq + K.

注意:您应明确启用这些组合键。 Ubuntu附带sysrq默认设置176(128 + 32 + 16),它允许仅运行REISUB组合的SUB部分。 您可以将其更改为1或可能更低的危害,244。为此:

 sudo nano /etc/sysctl.d/10-magic-sysrq.conf 

并切换176至244; 然后

 echo 244 | sudo tee /proc/sys/kernel/sysrq 

它会马上起作用! 您可以按Alt + SysReq + F进行测试 。 对我来说,它杀死了活动的浏览器选项卡,然后是所有扩展 如果您继续,您可以重新启动X服务器。


有关所有Alt + SysReqfunction的更多信息,请点击此处 。

您可以使快捷键Ctrl + Alt + Delete打开系统监视器 ,您可以使用它来杀死任何无响应的应用程序。

  1. 打开系统➜首选项➜键盘快捷键 ,然后单击添加
    在“ 命令”字段中,输入gnome-system-monitor 。 根据需要命名快捷方式。

在此处输入图像描述

  1. 单击“ 应用” ,然后单击“ 已禁用” 。 现在按Ctrl + Alt + Delete

在此处输入图像描述

  1. 关闭键盘快捷键并尝试快捷方式:

在此处输入图像描述

如您所述的冻结可能与软件和硬件相关,并且您发现有时令人沮丧地难以诊断。

硬件

如果这是台式电脑,请查看您的硬件卡。 对于笔记本电脑和台式机,可能是acpi类型问题。

暂时简化配置以使图形卡与标准键盘和鼠标连接可能很有用。 应删除所有其他卡。

对于与acpi相关的问题,请尝试使用grub引导选项中的noapic nomodeset进行引导。 它也值得尝试acpi=off虽然这可能有其他不良影响,如恒定的风扇使用。

还值得检查BIOS版本级别,看看供应商是否有更新的BIOS版本。 自述文件应该有希望揭示是否有任何新版本修复崩溃和冻结。

软件

我注意到你已经尝试过标准的270驱动程序但由于冻结而失败了。 您是否可以澄清您是否与开源驱动程序有类似的问题? 显然,在测试过程中你不会得到Unity。

图形冻结可以是驱动程序/ compiz / X /内核之一/或其组合

如果您愿意尝试以下任何建议, 请先使用CloneZilla等备份工具备份您的系统。 您需要一个外部媒体设备来接收图像,例如大型USB记忆棒/驱动器或单独的内置硬盘驱动器。

安装较新的nVidia驱动程序

使用Additional Drivers窗口停用(卸载)当前的173-nvidia驱动程序。

主要在275稳定中有少量重要的修复,但280beta中的一小部分修复了固定的冻结 – 值得一试,看看它们是否适用于你的显卡。 不幸的是,nvidia没有详细说明他们专门修复哪些卡(readme.txt)

但是 – 除非你对扭转nvidia安装有信心,否则我强烈推荐备份 – 特别是因为你对270位稍微老一些的驱动程序有严重的问题。 我已经无数次地使用了clonezilla,它总是让我摆脱困境。 您确实需要一个大型外部驱动器 – USB记忆棒/外部驱动器或单独的驱动器。

X更新

最新的图形驱动程序已经打包在x updates ppa中 。

注意 – 这将使您远离标准基线 – 如果将来升级ppa-purge在升级之前ppa-purge PPA本身。

您也可以从nVidia手动安装驱动程序:

尝试安装最新的nvidia stable 275或280驱动程序 – 32bit 280驱动程序:ftp site and 64bit:280驱动程序:ftp site

安装

CTRL + ALT + F1切换到TTY1并登录

 sudo service gdm stop 

停止X服务器

 sudo su 

以root身份运行

 cd ~/Downloads sh NVIDIA-Linux-x86-280.04.run 

要安装32位驱动程序(相当于64位),请重新启动。

要卸载

 sudo sh NVIDIA* --uninstall 

同时删除/etc/X11/xorg.conf

X /核心/ Compiz的

如果您使用效果运行经典Ubuntu,您会遇到与标准Ubuntu相同的冻结问题吗? 如果你不能用经典的Ubuntu重复冻结(没有效果)那么这将指向你的compiz问题。 我会向compiz团队提出一个启动板错误报告。

如果空间可用(例如20Gb),您可以在最新的oneiric alpha旁边进行双启动/安装。 显然这本身就是不稳定的,但它会带有最新的X和内核。 您可能还需要手动安装上面的beta 280图形驱动程序,因为它可能不会在“附加驱动程序”窗口中提供。

如果在测试期间你没有看到相同的冻结活动,你可以尝试使用x-edgers ppa提升你的X版本并在Natty中使用内核内核3.0。 走这条路并不是理想的 – 并且可能导致您将来升级问题 – 并且可能还有其他无法预料的稳定性问题。 再次,使用ppa-purge去除PPA。

内核3.0与PPA一起打包 – 如果您打算稍后安装nvidia驱动器,则需要在重新引导之前从synaptic安装头文件和内核本身。

这是一个测试ppa – 如果您想尝试这条路线,请准备好备份。

如果你遇到很多冻结,你的硬件可能有问题。 由于一些不太理想的RAM,我曾经每48小时获得一次硬锁定。 Memtest86 +在测试40分钟后显示故障。 将RAM换了一些(保修期内),我现在是32天,1小时的正常运行时间。

Ubuntu不会像Windows一样随着时间的推移泄漏其内存。 即使一个应用程序或一个糟糕的Xvideo驱动程序,你可以非常简单地重新启动LigthtDM,只是继续前进和前进。 我实际上在这一个启动中经历了三个测试版的nvidia驱动程序:)

无论如何……虽然知道如何轻轻地重新启动是一件非常方便的事情,但查找,报告和修复系统应该是您的下一个优先事项。 如果它是一个永远在线的系统,你应该能够轻松地在内核更新*之间进行,而无需重启。

*您应该在获得内核更新时重新启动,因为它们将是安全修复程序,在您重新启动到较新的内核之前不会应用这些修补程序。

当一切都停止工作时,首先尝试按Ctrl + Alt + F1转到终端,在那里你可能会杀死X或其他问题进程。

如果即使这样也不起作用,尝试按住Alt + SysReq,同时按下(慢慢地,每次间隔几秒钟) R E I S U B。

这使键盘处于原始模式,以各种状态结束任务,同步磁盘等,最后重新启动计算机。 这样做比获取插头要好得多。 当然,如果这个失败了,你几乎就要拔掉插头了。

此外,有时它只是挂起的X-Server – 我在你使用Compiz时经常发现的一个案例。

如果是这种情况,你可以杀死X,这将重新启动并让你回到登录屏幕。

默认顺序为Ctrl + Alt + Backspace

虽然默认情况下这是关闭的(可能是新用户不小心碰到了它)并且可以像这样重新打开:

  1. SystemKeyboard (即键盘首选项对话)
  2. 布局选项卡
  3. 单击“ 选项”按钮
  4. Key Sequence中杀死X服务器点,检查Ctrl + Alt + Backspace

总冻结时我的第一个喜欢 – Alt + SysRq + K.

该组合杀死X,并将我返回到图形登录屏幕。 如果这不起作用,请尝试Alt + SysRq + R E I S U B。

在这种情况下,您可以尝试按CTRLALTF1进入控制台。 然后使用您的密码登录。

重新启动GUI

您可以尝试使用以下命令重新启动图形桌面:

 sudo service lightdm restart 

如果你正在运行Ubuntu 11.04 或更早版本 ,你应该使用它(因为gdm曾经是默认的显示管理器):

 sudo service gdm restart 

如果你正在使用Kubuntu,那么默认的显示管理器是kdm ,所以你应该使用:

 sudo service kdm restart 

如果您正在使用其他显示管理器,请将ligthdm / gdm / kdm替换为其名称。

重新启动机器

如果要进行干净的系统重启,请使用:

 sudo shutdown -r now 

DoR和Phoenix已经很好地回答了这个问题。 为了使这个页面更完整,我会添加:

如果只有X被“破坏”,那么你可以使用内核来杀死它:

SysRq + Alt + K.

对于笔记本电脑(取决于型号,如果“SysRq”以蓝色写入,通常需要):

Fn + SysRq + Alt + K (按下SysRq后释放Fn )。

我做的是用例如打开一个终端。 Ctrl + Alt + F2

登录并使用终端来终止滞后的进程

 ps -e | grep  

这显示了具有该名称的进程的processID

 (sudo) kill  

如果不起作用,这将安全地关闭过程

 (sudo) kill -9  

有关这些命令的更多信息,请使用手册页。

您可以使用Ctrl + Alt + F7返回图形用户界面

要诊断冻结,您应该能够使用网络控制台(或串行串行控制台)。 按照此处列出的设置说明进行操作。

首先要看的是它是冻结的X还是整个系统。 启用ssh然后ssh进入系统。 如果你不能ssh到它,那么它可能是一个内核锁定。 如果你可以 ssh,那么它可能只是一个gpu锁定。

接下来尝试重新启动X.通过重新启动显示管理器来执行此操作:

  • 在Ubuntu 11.10及更高版本中,LightDM是显示管理器,因此运行:

     service lightdm restart 
  • 在Ubuntu 11.04及更早版本中,GDM是显示管理器,因此运行:

     service gdm restart 

如果这样可行,那么它可能是一个X bug。 如果它仍然不起作用,那么你可能在内核drm驱动程序中有一个GPU锁定。 在这一点上知道你是在运行-ati(开源)驱动程序还是运行-fglrx(闭源)驱动程序会很有用。

如果你必须做一个硬关机我会想知道内存(RAM)是否失败。 在下次启动时,尝试运行memtest86。 去做这个:

  • 启动时,按住shift键
  • 将出现GRUB菜单
  • 使用光标键选择最后一个选项“memtest86”
  • 按下回车键

您将获得一个基本显示,它将尝试读取并写入大量值到您的所有RAM。 只要没有失败,您就会看到绿色状态。 如果有任何故障,它将变为红色。 在这种情况下,您需要更换至少一根RAM。

还有一些诊断硬件故障的社区文档 。

如果您使用第一个答案中建议的神奇SysRq键,只需尝试让键盘首先使用Alt + SysRq + R ; 然后再次尝试Ctrl + Alt + F1

它可能会工作,你可以节省自己重新启动。 只有当它不起作用时,你应该尝试整个REISUB序列。

只需按键盘上的Ctrl + Alt + F1即可打开TTY1。 打开时,运行Kill命令。 以下示例。

首先你使用:ps这将显示所有进程正在运行(“ps | less”如果你想逐页查看结果)然后你查找要终止的进程的PID。 使用完毕后:杀死pid

kill命令 – 停止进程运行

语法:kill [-s sigspec] [-n signum] [-sigspec] jobspec或pid kill -l [exit_status]

描述:大多数现代shell,包括Bash,都有内置的killfunction。 在Bash中,信号名称和数字都是

作为选项接受,参数可以是作业或进程ID。 可以使用-l选项报告退出状态:当成功发送至少一个信号时为零,如果发生错误则为非零。 使用/ usr / bin中的kill命令,您的系统可能会启用额外的选项,例如能够从您自己的用户ID以外的方式终止进程并按名称指定进程,例如使用pgrep和pkill。 如果没有给出,则两个kill命令都发送TERM信号。

资料来源: http : //www.linuxforums.org/forum/newbie/53976-end-tasks-linux-like-task-manager-windows.html

资料来源: http : //webtools.live2support.com/linux/kill.php

我认为没有完美的发行版,即使在Windows中他们也有这个死亡画面。

  • 打开另一个终端Ctrl + Alt + F2

  • 使用您的用户名和密码登录。

  • 发出以下命令:

     sudo /etc/init.d/gdm restart 

    这会重新启动或使您退出当前会话,但不会重新启动。

然后按Ctrl + Alt + F7返回到您的图形界面。

最简单的解决方案是将“Force Quit”小程序添加到Gnome顶部面板,当程序没有响应时,单击强制退出然后单击应用程序。

我很惊讶这么多的答案,没有提到。 当然,你总是可以做一个ps -A和管道来grep你的程序名称。 kill -9那个。 我更喜欢简约。

您可以随时执行Alt + F2并编写killall xkill ,然后单击要粉碎的窗口!

我的ubuntu非常容易冻结(大概每天20次)。 我也使用了神奇的sysrq密钥,但是我没有用它来重启或杀死xserver,而是使用调用oom_kill的’f’命令,有效地删除了一个进程。 我只见过这种掉落铬标签(因为我倾向于一次打开几个重量级的标签)。 无论如何,这让我在95%的时间里摆脱了这种混乱。

因此,当我的ubuntu冻结(锁定,鼠标停止响应等)时,我按住alt + sysrq然后点击f (如果你没有正确地执行此操作,它将采用截图)。 在ubuntu恢复生机之前,我通常需要重复几次这个组合。

如果我没有发现这个,我很久以前就已经放弃了ubuntu,希望它可以帮助别人!

(社区wiki回答 – 解决方案最初埋没在OP 问题中 )

解:

解决了它。

我的特殊问题是我的显卡(集成Radeon 9000系列)。 netconsole透露我收到了错误: "reserve failed for wait" 。 在反复试验后,我手动配置了我的video卡并禁用了硬件加速。 完全解决了这个问题。

这是我做的:

手动创建xorg.conf

Ubuntu自动配置xorg.conf并且不使用文件。 要编辑此文件,您必须告诉Ubuntu显式创建一个然后编辑它。 以下是步骤:

  1. 重启系统
  2. GRUB引导时按住Shift键
  3. 在GRUB登录菜单中选择root终端
  4. 执行: X -config xorg.conf.new
  5. 复制: cp xorg.conf.new /etc/X11/xorg.conf

禁用硬件加速

以下是我的Radeon卡特有的,但我确定其他卡也有类似的设置。

  1. 编辑xorg.conf
  2. 查找图形卡的“设备”部分
  3. 取消注释“NoAccel”选项并设置为“True”
  4. 保存+重启

希望有所帮助。

切换到TTY视图时,您可能会获得一些额外的信息。 按Ctrl + Alt + F1进行此操作,使用Ctrl + Alt + F7 (或可能是F8 )返回GUI。 您可以在大多数F键上使用不同的会话,但这完全是不同的问题。

如果可能,尝试从另一台计算机打开一个ssh shell。 这是一个选项如果您事先知道计算机可能很快就会挂起,请在执行该任务之前先打开连接。

当我知道vmware疯狂并且ubuntu(vmware主机)的GUI变得没有响应时,我有时会这样做。 我可以从ssh shell暂停,它可能需要一段时间才能通过,并且一段时间后计算机再次空闲。

按Alt + F2运行命令。 输入xkill并按Enter键。

您的鼠标光标将变换为十字形,可以强制关闭您单击的任何窗口。

如果有人可以提供截图,我认为这将是有用的。

在Unity / Compiz,X.org系统和video驱动程序之间存在一些错过的错误。 当然,这些错误是由更新,更新版本的Unit,Compiz,X或video驱动程序处理的。

当在Unity内部并且一切都很慢且基本上已损坏时,要转到TTY1,请按CTRL + ALT + F1 。 在终端中,键入您的用户和密码以进入提示行。 您也可以在启动时按ESC或按住SHIFT键进入TTY,然后在GRUB菜单上选择恢复模式。

  1. 安装Xorg Edgers PPA

     sudo add-apt-repository ppa:xorg-edgers/ppa sudo apt-get update 

    根据您的video卡,您可以安装304系列,310系列,313系列或任何更新的video卡。 我建议始终测试最新版本,并且只有在它出现问题时才会测试,然后从那里开始直到达到一切正常的版本。 例如,如果你有GT 9500或更高版本(就我的情况而言,我也有440 GT,560 TI和680 GTX),解决我所有问题的唯一版本是几天前发布的313.18 。 所以我会这样做:

     sudo apt-get install nvidia-313 

    这将安装最新版本的313系列。 它修复了compiz,unity和xorg的许多video问题。 310系列还修复了许多问题,但尚未使用我的video卡测试过。 在撰写本文时,其他Nvidia版本是nvidia-experimental-304和nvidia-experimental-310。

  2. 重新启动以测试您的video卡是否与Ubuntu无法正常工作。 如果您遇到有关Nvidia配置文件的任何问题,只需打开终端并输入sudo nvidia-xconfig并重新启动即可。

还有其他一些不错的问题可以帮助:

如何更新我的NVIDIA驱动程序?

如何安装Nvidia驱动程序?

无法安装Nvidia驱动程序

nvidia-current和nvidia-current-updates软件包有什么区别?

甚至更通用的一个: 如何在Unity 3D中正确启用Desktop Cube?

如果您已经尝试了以上所有并且冻结问题仍然存在,您可能想尝试我所做的。

将大量的接触清洁剂应用于CPU,RAM和任何其他芯片组合,足以显示那些微小,紧密排列的引脚。 它们可能因灰尘积聚而失去导电性,并且由于湿度而导致短路。

清洁后几天(我使用CRC 2-26)和一系列非常残酷的压力测试,我的电脑没有冷冻一次。

因此,对于所有人来说,突然发生意外冻结,放弃使用超出合理范围的操作系统,并做一个详尽的灰尘和接触清洁。

替换为最新的Linux内核2.6.35或更高版本将解决您的问题。 请从此链接中执行以下步骤。

我和10.04有类似的问题。 X会挂起,除了重置之外别无他法。 我将我的nvidia驱动程序更新到最新版本,之后我没有遇到过任何问题。

在特定情况下,您使用Virtualbox仅使用VT-x或AMD-V(内置CPU的硬件虚拟化技术)在32位(Ubuntu)主机上运行64位guest虚拟机

当您使用VT-x或AMD-V(内置CPU的硬件虚拟化技术)在其上运行64位guest虚拟机时,Virtualbox可能会使您的32位主机随机崩溃。 这是一个众所周知的问题 。

2解决方案:

  1. 您必须仅在当前的32位主机上运行32位guest虚拟机[建议如果RAM少于2 GB];
  2. 您必须切换到Ubuntu 64位作为主机(您甚至可以通过重新安装Ubuntu 64位而不触及“/ home”文件夹来执行32位到64位的“迁移”)[建议如果您有2 GB RAM或更多]。

请注意,您可以使用Virtualbox在64位主机上运行64位和32位guest虚拟机,没有任何问题。

其他答案已经涵盖了一般情况……