笔记本电脑用作Linux Server时合盖&屏幕背光的设置
笔记本电脑安装headless linux系统(不带桌面gui)作为服务器使用时,有两个问题需要解决:
- 合盖以后系统自动休眠
- 屏幕常亮
要解决也很简单
- 取消合盖休眠
只需要修改/etc/systemd/logind.conf
配置文件即可
找到HandleLidSwitch
开头的三个设置项
HandleLidSwitch=suspend # 合上盖子时休眠
HandleLidSwitchExternalPower=suspend # 接通电源时合上盖子仍休眠
HandleLidSwitchDocked=ignore # 当连接外接显示器时忽略盖子动作
参数释义:
- suspend:休眠(默认行为)。
- hibernate:进入深度休眠(需要确保系统支持)。
- poweroff:关机。
- ignore:忽略盖子关闭动作(不会休眠)。
根据自己的需求,将suspend
修改为ignore
即可,然后用一下命令重启服务后生效
sudo systemctl restart systemd-logind.service
- 关闭屏幕背光
对于关闭屏幕,网上有很多方法都说通过电源控制来管理,但我实测以后发现不仅需要额外安装一堆包而且还不管用,所以最后用的方法是:直接将屏幕亮度设置为0
可以先用以下命令查看当前屏幕的亮度
# 不同硬件可能路径不同,请自行调整
cat /sys/class/backlight/intel_backlight/brightness
用以下命令将屏幕亮度设置为0
echo 0 | sudo tee /sys/class/backlight/intel_backlight/brightness
有些奇怪的硬件可能会自动重置屏幕亮度,也就是明明关闭了背光,但过段时间以后屏幕又会变亮,这种情况可以用crontab
配合bash脚本时间自动检测屏幕亮度
bash脚本如下(需要root权限)
#!/bin/bash
# 通常亮度控制文件位于这个路径
brightness_file="/sys/class/backlight/intel_backlight/brightness"
# 不同系统可能需要调整路径,例如:
# /sys/class/backlight/amdgpu_bl0/brightness
# /sys/class/backlight/acpi_video0/brightness
# 检查文件是否存在
if [ ! -f "$brightness_file" ]; then
echo "无法找到亮度控制文件"
exit 1
fi
# 获取当前亮度
current_brightness=$(cat "$brightness_file")
# 检查亮度是否为0
if [ "$current_brightness" -ne 0 ]; then
# 需要root权限来修改亮度
echo 0 | tee "$brightness_file" > /dev/null
echo "亮度已设置为0"
else
echo "亮度已经是0"
fi