![如何永久禁用系统范围内的 Linux 控制台屏幕保护程序?](https://linux22.com/image/512605/%E5%A6%82%E4%BD%95%E6%B0%B8%E4%B9%85%E7%A6%81%E7%94%A8%E7%B3%BB%E7%BB%9F%E8%8C%83%E5%9B%B4%E5%86%85%E7%9A%84%20Linux%20%E6%8E%A7%E5%88%B6%E5%8F%B0%E5%B1%8F%E5%B9%95%E4%BF%9D%E6%8A%A4%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我有一台以文本模式启动的 Ubuntu 服务器。它很少连接屏幕或键盘,但当我连接屏幕时,我通常也必须连接键盘,因为该死的控制台模式屏幕保护程序将打开,我需要按下某个键才能查看发生了什么。
我知道 setterm 命令可以禁用此功能,但这是每个会话的事情。我怎样才能让机器在文本模式下永远不会黑屏,即使它第一次启动并停留在登录提示符下?
答案1
在 Ubuntu 12.10 及更早版本中控制台工具该包允许控制控制台选项。
要关闭屏幕消隐和关机,请在 中设置和。BLANK_TIME
如果您不想修改配置文件,可以通过在 中创建包含以下内容的新文件来实现相同的效果:POWERDOWN_TIME
0
/etc/console-tools/config
/etc/console-tools/config.d
BLANK_TIME=0
POWERDOWN_TIME=0
config.d 中的文件名称必须完全由大小写字母、数字、下划线和连字符组成。
答案2
或者你使用 /etc/kbd/config 来设置(取决于你的系统,安装了什么)
BLANK_TIME=0
BLANK_DPMS=off
答案3
该参数通过内核命令行控制,使用 setterm 只会更改运行时设置。要在整个系统范围内禁用它,您可以在启动配置 (grub/lilo) 中附加“consoleblank=0”来更改内核启动命令行。
如果在启动期间设置了某些内容,那么它将覆盖该值。
答案4
如果您正在运行使用 upstart 的较新的 Ubuntu,则可以使用:
for file in /etc/init/tty*.conf; do tty="/dev/`basename $file .conf`"; echo "post-start exec setterm -blank 0 -powersave off >$tty <$tty" | sudo tee -a "$file"; done
稍微解释一下这里发生的事情:
较新的 Ubuntu 版本使用 upstart 进行系统启动。使用 upstart,Linux 控制台使用存储在 /etc/init 中的配置文件进行设置。上面的命令首先遍历每个配置文件:
for file in /etc/init/tty*.conf;
$file 中的 tty 的 upstart 配置文件名用于构建 tty 设备的名称:
tty="/dev/`basename $file .conf`";
构建了一个 upstart“启动后”命令,该命令运行“setterm”以在 tty 启动后禁用屏幕消隐和省电功能:
echo "post-start exec setterm -blank 0 -powersave off >$tty <$tty"
最后将该命令附加到 upstart 配置文件:
| sudo tee -a "$file";