如何永久禁用系统范围内的 Linux 控制台屏幕保护程序?

如何永久禁用系统范围内的 Linux 控制台屏幕保护程序?

我有一台以文本模式启动的 Ubuntu 服务器。它很少连接屏幕或键盘,但当我连接屏幕时,我通常也必须连接键盘,因为该死的控制台模式屏幕保护程序将打开,我需要按下某个键才能查看发生了什么。

我知道 setterm 命令可以禁用此功能,但这是每个会话的事情。我怎样才能让机器在文本模式下永远不会黑屏,即使它第一次启动并停留在登录提示符下?

答案1

在 Ubuntu 12.10 及更早版本中控制台工具该包允许控制控制台选项。

要关闭屏幕消隐和关机,请在 中设置和。BLANK_TIME如果您不想修改配置文件,可以通过在 中创建包含以下内容的新文件来实现相同的效果:POWERDOWN_TIME0/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";

相关内容