关机不会关闭计算机电源

我最近从Ubuntu 11.10升级到12.04。 如果它有所不同,我的系统是戴尔Inspiron 1520。

每当我关机或重启时都会遇到问题; 它会杀死所有正在运行的进程(据我所知),但是一旦我越过关闭文本屏幕并且屏幕变黑,我的计算机就不会关闭电源。 风扇仍在运行,屏幕仍然亮着,等等。我必须按住电源按钮才能完成关机。

有谁知道如何解决这个问题?

我遇到了同样的问题,并找到了一个适合我的解决方案 。

输入终端:

  1. sudo -i (要获得root shell,不建议使用sudo gedit)
  2. gedit /etc/default/grub
  3. 找到这一行: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
  4. 将其更改为: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=force"
  5. 保存文件并关闭文件。
  6. 最后,在terminal: update-grub
  7. 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/grubGRUB_CMDLINE_LINUX_DEFAULT的定义中,或者添加该行(如果它尚不存在)。

 GRUB_CMDLINE_LINUX_DEFAULT="apm=power_off" 

然后根据您的操作系统手册更新grub安装,例如: update-grubgrub2-mkconfig -o /boot/efi/EFI/[osname]/grub2.cfg或类似内容。