禁用屏幕休眠需分层处理:1. 临时关DPMS用xset -dpms;2. 永久禁用需在X启动脚本加该命令或改logind.conf设IdleAction=ignore等并重启服务;3. 桌面环境需单独关闭屏保与锁屏;4. TTY下用setterm -blank 0或内核参数consoleblank=0。

systemd 系统下怎么禁用屏幕休眠(DPMS)
Linux 桌面环境默认会通过 xset 或 systemd-logind 触发屏幕变暗/关闭,本质是 DPMS(Display Power Management Signaling)在起作用。直接关掉它最稳,不依赖桌面环境。
实操建议:
- 运行
xset -dpms可临时关闭 DPMS —— 但仅对当前 X session 有效,重启或换用户就失效 - 永久生效要改
/etc/X11/xinit/xserverrc或桌面启动脚本(如~/.xprofile),加一行xset -dpms - Wayland 用户绕不开 compositor 控制,GNOME 要进
Settings → Power → Blank Screen设为“Never”,KDE 则在System Settings → Display and Monitor → Screen Lock关闭“Lock screen when system is idle”
怎么阻止 systemd-logind 自动挂起(suspend)
systemd-logind 是幕后黑手,它按配置自动触发 suspend、lock、idle 行为,哪怕你关了 DPMS,它仍可能几秒后把整机挂起。
实操建议:
- 编辑
/etc/systemd/logind.conf,取消注释并修改这几行:IdleAction=ignoreIdleActionSec=0HandleLidSwitch=ignoreHandleLidSwitchExternalPower=ignore - 改完必须执行
sudo systemctl restart systemd-logind,否则不生效 - 注意:如果用了
logind.conf.d/*.conf覆盖主配置,优先级更高,得去对应文件里改
GNOME/KDE 桌面下单独关屏保和锁屏
桌面环境自己的屏保(screensaver)和锁屏(lock screen)逻辑独立于 DPMS 和 logind,关错地方白忙活。
实操建议:
- GNOME:运行
gsettings set org.gnome.desktop.screensaver lock-enabled false,再设idle-delay为 0:gsettings set org.gnome.desktop.session idle-delay 0 - KDE:在
System Settings → Display and Monitor → Screen Lock中关掉“Lock screen when system is idle”,同时确认Power Management → Energy Saving里“Screen energy saving”设为“Never” - 命令行查当前值:GNOME 用
gsettings get org.gnome.desktop.session idle-delay,KDE 用qdbus org.kde.KScreenLocker /Screenlocker org.freedesktop.ScreenSaver.GetActive
终端 tty 下屏幕常亮怎么搞
切换到 Ctrl+Alt+F2 这类纯终端(tty),X/Wayland 不在,xset 失效,systemd-logind 的 idle 控制也默认不管 tty —— 但内核级的 consoleblank 参数会 10 分钟黑屏。
实操建议:
- 临时:运行
setterm -blank 0,只对当前 tty 生效 - 永久:在内核启动参数里加
consoleblank=0,改/etc/default/grub中的GRUB_CMDLINE_LINUX,然后sudo update-grub && sudo reboot - 验证是否生效:
cat /sys/module/kernel/parameters/consoleblank应输出0
真正麻烦的是多层叠加:DPMS + logind + 桌面屏保 + consoleblank 各管一段,漏一个就黑屏。别只改一处,得顺着信号流一路堵死。











