当Ubuntu冻结时我该怎么办?
所有操作系统有时都会冻结,Ubuntu也不例外。 我应该怎么做才能重新获得控制权……
- 只有一个程序停止响应?
- 什么都没有响应鼠标点击或按键?
- 鼠标完全停止移动?
- 我有Intel Bay Trail CPU?
在决定拔下电源插头之前,我应该以什么顺序尝试各种解决方案?
启动Ubuntu时我该怎么办? 我可以遵循诊断程序吗?
当单个程序停止工作时:
当程序窗口停止响应时,通常可以通过单击窗口左上角的X形关闭按钮来停止响应。 这通常会导致一个对话框说明程序没有响应(但你已经知道了)并向你提供了杀死程序或继续等待它响应的选项。
有时这不会按预期工作。 如果无法通过常规方式关闭窗口,可以按Alt + F2 ,键入xkill
,然后按Enter键 。 然后您的鼠标光标将变为X. 将鼠标hover在违规窗口上并左键单击以将其终止。 右键单击将取消并将鼠标恢复正常。
另一方面,如果程序是从终端运行的,通常可以使用Ctrl + C将其暂停。 如果没有, 找到其命令的名称和进程ID ,并告诉程序尽快结束kill [process ID here]
。 它发送默认信号SIGTERM
( 15
)。 如果所有其他方法都失败了,作为最后的手段发送SIGKILL
( 9
): kill -9 [process ID here]
。 请注意,您应该只使用SIGKILL
作为最后的手段,因为内核会立即终止该进程,而无法进行清理。 它甚至没有得到信号 – 它只是停止存在。
(如果你有权kill -9
, kill -9
的进程总是有效。在某些特殊情况下,进程仍然按ps
或top
列出(作为“僵尸”) – 在这种情况下,程序被杀死,但是进程保留表项,因为以后需要它。)
当鼠标停止工作时:
如果键盘仍然有效,请按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:
在按住Alt和SysReq(打印屏幕)键的同时,键入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键有效,则可以使用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打开系统监视器 ,您可以使用它来杀死任何无响应的应用程序。
- 打开系统➜首选项➜键盘快捷键 ,然后单击添加 。
在“ 命令”字段中,输入gnome-system-monitor
。 根据需要命名快捷方式。
- 单击“ 应用” ,然后单击“ 已禁用” 。 现在按Ctrl + Alt + Delete键
- 关闭键盘快捷键并尝试快捷方式:
如您所述的冻结可能与软件和硬件相关,并且您发现有时令人沮丧地难以诊断。
硬件
如果这是台式电脑,请查看您的硬件卡。 对于笔记本电脑和台式机,可能是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
虽然默认情况下这是关闭的(可能是新用户不小心碰到了它)并且可以像这样重新打开:
-
System
→Keyboard
(即键盘首选项对话) - 布局选项卡
- 单击“ 选项”按钮
- 在Key Sequence中杀死X服务器点,检查Ctrl + Alt + Backspace 。
总冻结时我的第一个喜欢 – Alt + SysRq + K.
该组合杀死X,并将我返回到图形登录屏幕。 如果这不起作用,请尝试Alt + SysRq + R E I S U B。
在这种情况下,您可以尝试按CTRL – ALT – F1进入控制台。 然后使用您的密码登录。
重新启动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显式创建一个然后编辑它。 以下是步骤:
- 重启系统
- GRUB引导时按住Shift键
- 在GRUB登录菜单中选择root终端
- 执行:
X -config xorg.conf.new
- 复制:
cp xorg.conf.new /etc/X11/xorg.conf
禁用硬件加速
以下是我的Radeon卡特有的,但我确定其他卡也有类似的设置。
- 编辑
xorg.conf
- 查找图形卡的“设备”部分
- 取消注释“NoAccel”选项并设置为“True”
- 保存+重启
希望有所帮助。
切换到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菜单上选择恢复模式。
-
安装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。
-
重新启动以测试您的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解决方案:
- 您必须仅在当前的32位主机上运行32位guest虚拟机[建议如果RAM少于2 GB];
- 您必须切换到Ubuntu 64位作为主机(您甚至可以通过重新安装Ubuntu 64位而不触及“/ home”文件夹来执行32位到64位的“迁移”)[建议如果您有2 GB RAM或更多]。
请注意,您可以使用Virtualbox在64位主机上运行64位和32位guest虚拟机,没有任何问题。
其他答案已经涵盖了一般情况……