如何防止树莓派(非Xserver环境)进入休眠状态?
看起来你已经尝试了临时禁用屏幕空白的命令,但重启后就失效了,而且修改LightDM配置没效果——大概率是因为你是在**纯控制台环境(没有桌面)**下运行的,所以LightDM的配置根本不会生效。下面给你几个永久解决的方法,分场景来说:
一、永久禁用控制台(TTY)的屏幕空白
因为你用的setterm -blank 0是针对TTY的,要让它永久生效,有两种靠谱的方式:
方法1:修改控制台配置文件
直接编辑/etc/default/console-setup,在文件末尾添加一行:
BLANK_TIME=0
保存后重启,控制台就不会再自动黑屏了。这个方法是系统级的,对所有TTY都生效。
方法2:把命令加到全局bash配置
如果上面的方法没效果,可以把临时命令加到全局bash启动脚本里,这样每次登录TTY都会自动执行:
编辑/etc/bash.bashrc,在文件末尾添加:
if [ "$TERM" = "linux" ]; then setterm -blank 0 > /dev/tty0 fi
保存后,要么重启,要么执行source /etc/bash.bashrc让配置立即生效。
二、让Pi-hole日志(pihole -t)开机自动运行
既然你想持续显示pihole -t,可以让它在开机后自动启动,配合上面的屏幕空白禁用,完美解决需求:
步骤1:设置TTY自动登录
首先让树莓派开机自动登录到TTY1(默认的控制台):
编辑/etc/systemd/system/getty@tty1.service.d/autologin.conf(如果没有这个目录和文件,就新建):
[Service] ExecStart= ExecStart=-/sbin/agetty --autologin 你的用户名 --noclear %I $TERM
把你的用户名换成你实际的用户名(比如pi),保存后执行systemctl daemon-reload生效。
步骤2:让pihole -t自动启动
编辑你的用户目录下的~/.bashrc,在末尾添加:
# 开机自动运行Pi-hole实时日志 if [ -t 1 ]; then pihole -t fi
这样每次自动登录后,就会自动启动pihole -t,持续显示日志。
三、如果是桌面环境下的终端窗口
如果你是在桌面环境的终端里运行pihole -t,那之前的LightDM配置没生效可能是参数不对,试试修改/etc/lightdm/lightdm.conf里的xserver-command:
xserver-command=X -s 0 -dpms
注意是-dpms(前面有横杠),之前可能少了横杠?然后还要在桌面的启动项里添加xset s off xset -dpms xset s noblank,确保桌面级别的屏幕空白也被禁用。
另外,也可以把这个xset命令加到~/.xprofile里,让它每次启动桌面都自动执行:
xset s off xset -dpms xset s noblank
这样应该就能解决你的问题了,根据自己的实际环境选对应的方法就行!
内容的提问来源于stack exchange,提问作者NitrousGranola

