在盖子关闭的情况下让 Ubuntu Server 在笔记本电脑上运行?

Why*_*hat 59 power-management

我决定使用我的 Eee PC 1001HA 作为家庭服务器。我通过 Wi-Fi 将它连接到运行 Ubuntu Server 12.04 的路由器。除了这个烦人的问题外,一切正常:

当我合上盖子时,ssh 服务器停止工作,我猜也是 wlan0。

尝试了 BIOS 并没有任何结果,没有关于盖子的选项。我的 wlan0 是 RaLink RT3090。

ls -lrt /var/log在盖子衍生物之间尝试过,但我无法理解那些撒旦的日志。如果需要,我可以分享它们。

pm-powersave.log似乎在盖子运动之间更新。所以我想我必须禁用这个“powersave”服务。我可以这样做吗?我不介意服务器是否整天运行。

请记住,没有用户界面,这是一个带盖子的上网本,它连接到交流适配器。

编辑:这只是一种解决方法,但我可以单击电源按钮并快速合上盖子。这样服务器就可以正常启动并自动连接到无线网络。(在这里找到)

小智 102

要禁用进入睡眠模式,我必须编辑/etc/systemd/logind.conf文件并修改行:

#HandleLidSwitch=suspend
Run Code Online (Sandbox Code Playgroud)

HandleLidSwitch=ignore
Run Code Online (Sandbox Code Playgroud)

此外,请确保该文件也有这一行:

LidSwitchIgnoreInhibited=no
Run Code Online (Sandbox Code Playgroud)

然后通过以下方式重新启动操作系统:

sudo service systemd-logind restart
Run Code Online (Sandbox Code Playgroud)

  • `HandleLidSwitch=lock` 如果你想要额外的安全性 (5认同)
  • 如果我想关闭显示屏怎么办? (4认同)
  • sudo sh -c 'echo "HandleLidSwitch=ignore" >> /etc/systemd/logind.conf' && reboot (3认同)
  • 在 16.06 (Lenovo Thinkpad P50) 上为我工作 (3认同)
  • meybe systemctl 重新启动 systemd-logind ?? 在 Ubuntu 16.4 LTS 上 (2认同)

小智 10

只是为了确认,戴尔 X100e 上的 14.04 LTS 服务器用户在这里。

sudo apt-get install acpi-support
sudo vi /etc/default/acpi-support # and then set SUSPEND_METHODS="none"
sudo /etc/init.d/acpid restart
Run Code Online (Sandbox Code Playgroud)

立即能够关闭盖子,没有问题。

只是张贴以确认以前的海报的解决方案是唯一需要的修复。除了这个之外,不需要(当前)做任何其他事情。

  • 这在服务器 14.04 LTS 上对我不起作用。应用这些更改后,当我合上盖子时,磁盘驱动器运行一秒钟,然后 wifi 熄灭。 (3认同)

ish*_*ish 6

一切都停止工作,因为......笔记本电脑进入睡眠状态!(暂停模式)。

要停止,只需禁用 ACPI盖子按钮事件。

编辑/etc/acpi/event/lidbtn并注释掉底部的两行:

  # /etc/acpi/events/lidbtn
  # 当用户关闭或打开盖子时调用
  event=button[ /]lid # 在开头用 # 注释掉
  action=/etc/acpi/lid.sh # 这里一样 

重新启动,应该是这样。

  • 嗨izx,我没有那个文件。我的“/etc/acpi/”有一个文件“powerbtn”。并且“/etc/acpi/events”有另一个同名文件:“powerbtn” (8认同)

小智 6

关闭时关闭笔记本电脑屏幕

这适用于我新安装的 Ubuntu Server LTS 18.04.1。

@ user386160 的回答非常有效,可以防止我的笔记本电脑进入睡眠状态。但是我发现即使盖子合上我的显示器也一直亮着(也就是产生不必要的热量)。

以下是我在关闭屏幕时关闭笔记本电脑显示器的额外步骤:

sudo apt-get install acpi-support vbetool
sudo echo "event=button/lid.*" > /etc/acpi/events/lid-button
sudo echo "action=/etc/acpi/lid.sh" >> /etc/acpi/events/lid-button
sudo touch /etc/acpi/lid.sh
sudo chmod +x /etc/acpi/lid.sh
sudo nano /etc/acpi/lid.sh
Run Code Online (Sandbox Code Playgroud)

然后将lid.sh文件的内容设置为以下内容:

#!/bin/bash

grep -q close /proc/acpi/button/lid/*/state

if [ $? = 0 ]; then
    sleep 0.2 && vbetool dpms off
fi

grep -q open /proc/acpi/button/lid/*/state

if [ $? = 0 ]; then
    vbetool dpms on
fi
Run Code Online (Sandbox Code Playgroud)


小智 5

我正在使用 14.04 LTS 和 ASUS EEE。

上面斯蒂芬的解决方案对我来说不起作用。然而,这个答案有效。


小智 5

另一种方法,

对于我在 Ubuntu Server 20.10 上的情况,更改 logind.conf 没有帮助(尽管我也这样做了,但没有在该文件中没有进行这些更改的情况下测试此解决方案),并且

sudo systemctl mask sleep.target suspend.target hibernate.target Hybrid-sleep.target

-approach 导致 systemd 消耗 100% 的 CPU,但是从这个手册页 https://manpages.ubuntu.com/manpages/cosmic/man5/systemd-sleep.conf.5.html 我设法让它工作(没有重新启动或任何其他方式)通过完全禁用睡眠;在 /etc/systemd/sleep.conf 中添加以下行

AllowSuspend=no
AllowHibernation=no
AllowSuspendThenHibernate=no
AllowHybridSleep=no
Run Code Online (Sandbox Code Playgroud)

虽然如果您希望能够在其他情况下暂停它等,那么这可能不是一个选择,但至少它对我有用。

  • 我无法编辑上面的评论,但我想提一下我在“/etc/systemd/sleep.conf”中看到的类似选项。您可以将文件添加到“/etc/systemd/sleep.conf.d/”(我必须先创建目录),而不是直接修改“/etc/systemd/sleep.conf”。其中的文件优先于“/etc/systemd/sleep.conf”。所以我创建了 `/etc/systemd/sleep.conf.d/00-sleep.conf` 并将这些行准确地放入其中。``[睡眠]AllowSuspend=noAllowHibernation=noAllowSuspendThenHibernate=noAllowHybridSleep=no``` (2认同)