如何让一台 Linux 笔记本电脑合上盖子后不进入休眠

本来以为是一个很简单的设置,就随便 Google 了一下,果然有清一色的解法,就是修改 /etc/systemd/logind.conf,把 HandleLidSwitch 改成 ignore 或者 lock,然后,重启 logind 或者 reboot。 试了下,发现在 Thinkpad X230 下根本不行,于是又改了上述文件的其他一些选项,发现都不行,而且 Ubuntu 竟然报错了。。。

于是,重装了更喜欢的 Debian。重试,发现还是不行。最后,找到了一个最暴力的解决办法。

systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

直接把这几个 unit 指向了 /dev/null。。。

想恢复的话就,

systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target

简单有效。

更新:

如果只 mask 的话,systemd-logind 的 CPU 占用会非常高,因为它会不断的尝试睡眠,所以还需要把 HandleLidSwitch 等改成 ignore。如下:

HandleSuspendKey=ignore
HandleHibernateKey=ignore
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore

然后,systemctl restart systemd-logind。详细参考了这里:SystemD-LoginD High CPU Usage

Comments

comments powered by Disqus