关机不会关闭计算机电源
我最近从Ubuntu 11.10升级到12.04。 如果它有所不同,我的系统是戴尔Inspiron 1520。
每当我关机或重启时都会遇到问题; 它会杀死所有正在运行的进程(据我所知),但是一旦我越过关闭文本屏幕并且屏幕变黑,我的计算机就不会关闭电源。 风扇仍在运行,屏幕仍然亮着,等等。我必须按住电源按钮才能完成关机。
有谁知道如何解决这个问题?
我遇到了同样的问题,并找到了一个适合我的解决方案 。
输入终端:
-
sudo -i
(要获得root shell,不建议使用sudo gedit) -
gedit /etc/default/grub
- 找到这一行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
- 将其更改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=force"
- 保存文件并关闭文件。
- 最后,在terminal:
update-grub
-
exit
(结束根shell)
我在这里找到了: Dell Studio 1569无法在Ubuntu 11.10或12.04中关机
我在完全相同的型号(Inspiron 1520)上遇到了同样的问题。 罪魁祸首似乎是专有的NVIDIA显卡驱动程序。 如果您卸载它并回退到Nouveau,它将照常工作。
要运行Nouveau而不是NVIDIA驱动程序,您只需删除/禁用“其他驱动程序”中的[两个] NVIDIA驱动程序(不运行英语系统,因此我无法确定名称)。 然后Ubuntu将自动使用Nouveau。
根据您的使用情况,Nouveau可能不够“足够好”。 但在我的情况下,我不需要NVIDIA驱动程序的性能(这里没有游戏!)。
要调查启动画面后面发生了什么,请按Esc 。 你会看到什么阻止它关闭。 然后,您可以解决该问题。 对于报告的许多案例,它是redis-server
。
关键可能在于这句话,“它会杀死所有正在运行的进程”。 在我的情况下,它没有! 问题是由redis-server
进程引起的,由于某种原因,该进程无法正常停止。 一旦我杀死所有redis-server
进程, sudo killall redis-server
,我就可以正常关闭了。 由于我不经常需要redis,所以我在启动时使用这些命令阻止了它:
sudo update-rc.d -f redis-server remove
sudo update-rc.d -f redis_6379删除
我将等待修复此问题的更新,但是现在我将记得在关闭之前停止redis进程。 它可能不是你的情况下的redis,但它可能是一个Ubuntu无法杀死的错误进程。
这可以帮助您检查问题:
-
service --status-all
:列出系统注册的所有服务。 以OS引导开始的服务将在它们之前有一个[+]符号。 -
按电源按钮手动关闭电源时,请阅读屏幕上显示的日志消息。 就我而言,我读到了一些关于尝试关闭redis服务器的内容。 如果按某些随机键,也可能会显示这些消息。
-
查看最近安装的程序,可能其中一个程序导致了问题。
-
尝试关闭所有不必要的进程,看看是否可以正常关闭。 如果可以的话,重复这个过程,缩小候选人的范围,直到你到达有缺陷的应用程序。
另一种可能的解决方案 – 特别是对于使用(U)EFI的较新硬件 – 是添加引导参数apm=power_off
。 您可以将它添加到/etc/default/grub
中GRUB_CMDLINE_LINUX_DEFAULT
的定义中,或者添加该行(如果它尚不存在)。
GRUB_CMDLINE_LINUX_DEFAULT="apm=power_off"
然后根据您的操作系统手册更新grub安装,例如: update-grub
或grub2-mkconfig -o /boot/efi/EFI/[osname]/grub2.cfg
或类似内容。