linux – 如何修复无响应的Ubuntu系统?

我用的是Ubuntu.有时,系统对鼠标和键盘没有任何响应.有没有办法解决这个问题,除了按下机器上的重置按钮?

解决方法:

如果您想要一种重新启动方式,而不保存打开的文档,但没有按下重置按钮,那么有一些方法不太可能导致数据丢失.首先,尝试Ctrl Alt F1.这应该会带你到virtual console,正如ixtmixilix所说.进入虚拟控制台后,Ctrl Alt Delete将关闭并重新启动计算机.

If that technique doesn’t work, there’s always Alt+SysRq+REISUB.

至于修复问题而不重新启动,如果没有关于发生了什么的更多信息,就很难给出一个好的答案.如果您可以描述发生这种情况的最佳方式(最好的方法是编辑您的问题以添加信息),那么这可以帮助人们给出好的答案.另一件需要考虑的事情是,如果您的计算机变得反应迟钝 – 特别是如果Ctrl Alt F1需要超过几秒钟来启动虚拟控制台 – 那么您几乎肯定会有一个错误,到reporting it你可以既帮助社区,也许得到答案.

GUI故障导致无响应的WM或X11 / Wayland

由于应用程序和窗口管理器(或X11服务器或Wayland)之间的交互,可能会发生这种情况.这是问题的本质的一个标志是应用程序停止响应并阻止您使用键盘或鼠标输入到其他应用程序窗口的输入. (没有应用程序应该能够执行此操作;某些GUI组件必须有一个错误才能实现此目的.)如果发生了这种情况,那么您可以在虚拟控制台中终止违规进程(如ixtmixilix所述):

>按Ctrl Alt F1.
>登录.输入密码后,您将看不到任何内容. That’s normal.
>使用像ps这样的实用程序来确定违规程序的进程名称.有时这在Ubuntu中很容易,有时则不然.例如,Archive Manager进程的名称是file-roller.如果你无法搞清楚,你通常可以在网上找到这些信息而不会有太多麻烦(或者如果不能,你可以发布一个关于它的问题).

您可以将ps的输出传输到grep以缩小范围.假设导致问题的是Archive Manager.然后你可以运行:

ps x | grep file-roller

您将看到自己的ps命令的条目,以及file-roller的条目.
>尝试使用SIGTERM终止违规进程.这使得它有机会进行最后一分钟的清理,例如刷新文件缓冲区,向远程服务器发送信号,告知它将要断开连接(对于执行此操作的协议),以及释放其他类型的资源.为此,请使用kill命令:

kill PID

其中PID是您要杀死的进程的process ID number,从步骤3中运行ps获得.
> SIGTERM是一种坚定地要求流程退出的方法.该过程可以忽略该信号,并且在某些情况下发生故障时也会这样做.所以你应该检查它是否有效.如果没有,请使用SIGKILL杀死它,它不能忽略,并且除了极少数情况下进程在uninterruptible sleep(或者如果它没有真正运行,而是相当于zombie process)时,它始终有效.

您可以检查进程是否仍在运行,如果只是一个命令,则使用SIGKILL将其终止:

kill -KILL PID

如果你收到像kill这样的消息:(PID) – 没有这样的过程,你知道用SIGTERM工作就杀了它.如果没有输出,你知道SIGTERM不起作用.在那种情况下,SIGKILL可能会这样做,但是再次运行它是值得检查的. (按向上箭头键可调出以前的命令,以便于输入.)
>在您自己的进程的极少数情况下,或者始终使用属于root的进程或除您自己之外的其他用户,您必须以root身份终止进程.为此,在上述kill命令之前添加sudo(包括尾随空格).如果上述命令不起作用或者您被告知您没有必要的访问权来终止该过程,请使用sudo以root身份尝试.

(顺便说一句,kill -KILL和广受欢迎的kill -9相同.我建议杀死-KILL,因为不保证SIGKILL在所有平台上都有9个作为其信号编号.它适用于x86,但是不行这意味着杀死-KILL比杀死-9更有可能成功结束这个过程.但是它们在x86上是等价的,所以如果你愿意,可以随意使用它.)

如果您知道没有其他进程与您要杀死的进程具有相同的名称,则可以使用killall而不是kill以及进程的名称而不是进程ID号.

进程独占CPU资源

如果进程以最高优先级或非常接近最高可能优先级运行(或者在最低可能的niceness或其附近更准确地说明它),则可能会使您的图形用户界面完全或接近完全无响应.但是,在这种情况下,您可能无法切换到虚拟控制台并运行命令(甚至可能重启).

如果以正常或中等优先级运行的进程或进程组合正在减慢您的计算机速度,您应该能够使用上面的技术杀死它们.但是如果它们是图形程序,你可能也可以通过单击它们的窗口上的关闭按钮来杀死它们 – 如果桌面环境没有响应,桌面环境将为您提供杀死它们的选项.如果这不起作用,当然你可以(几乎)总是用kill -KILL杀死它们.

I / O问题

越野车I/O可能导致长时间(甚至永久)无反应.这可能是由于内核错误和/或错误的驱动程序.部分解决方法是避免繁重的同时读取和/或写入操作(例如,在两个同时复制过程中不要一次复制两个大文件;在观看高清视频或安装时不要复制大文件虚拟机中的操作系统).

这显然不能令人满意,真正的解决方案是找到问题并进行报告.除非你从kernel.org运行主线内核,否则应该在Ubuntu中针对linux包报告内核错误(因为Ubuntu提供了集成特定于发行版的补丁的特殊内核版本,并且未在主线内核上确认的错误报告将在kernel.org被拒绝).你应该通过在受影响的机器上运行ubuntu-bug linux(或apport-cli linux)来做到这一点.先看Ubuntu bug reporting documentation;它解释了如何正确地做到这一点.

显卡问题

某些GUI锁定可能是由图形卡问题引起的.你可以尝试一些方法,以减轻这种情况:

>在网络上搜索其他人是否在Ubuntu或其他GNU / Linux发行版上遇到过相同视频卡(和/或机器的品牌和型号)的类似问题.可能存在比我在此答案中提供的更具体的解决方案,没有比您当前问题更具体的信息.
>查看是否有不同的视频驱动程序供您试用.您可以通过签入附加驱动程序来完成此操作;您还可以在网上搜索您的视频卡可用的Linux驱动程序.大多数专有视频卡是Intel,AMD/ATiNvidia(单击这些链接可查看有关在Ubuntu中安装和使用这些卡的专有驱动程序的社区文档).对于英特尔,你最好坚持使用Ubuntu中的FOSS驱动程序,但仍然可以使用helpful information.无论你有什么牌,this general information都可以提供帮助.

如果您当前正在使用专有驱动程序,则可以尝试使用不同的专有驱动程序(例如,直接来自NVidia或AMD / ATi),或者您可以尝试使用免费的开源驱动程序.
>尝试选择不需要/使用图形加速的图形登录会话类型.要执行此操作,请注销,然后在图形登录屏幕上单击登录名附近的Ubuntu徽标或齿轮图标.显示下拉菜单.将选择从Ubuntu更改为Ubuntu 2D.这使你使用Unity 2D而不是Unity.(如果你使用的是GNOME Shell,你可以选择GNOME Fallback / GNOME Classic.)如果有疑问并且有一个选项显示“没有效果”,那就选择那个,因为这可能是最安全的.

This question提供了有关不同图形界面的更多信息,您可以在Ubuntu中进行选择.
>在较新版本的Ubuntu中,您可以在登录屏幕上选择X.org和Wayland.无论你使用哪一个,试试另一个.有时Wayland的问题可以通过使用X.org来修复,反之亦然.
> Report a bug.

希望上面的信息已经传达了一些关于可能导致此类问题的一般信息.它还应该用于说明哪些信息可能对您添加到您的问题(取决于问题的具体细节)有用,以便能够获得更好的答案. (或者根据您的情况提供额外信息来改进此答案.)

上一篇:调试Linux机器死机


下一篇:Z字形扫描矩阵