在文本控制台上禁用屏幕空白


75

我正在运行linux群集,主要是在SLES10上。服务器主要是刀片,可通过远程控制台访问。服务器机房中有一个真正的控制台,但已关闭。

我想禁用屏幕空白,因为它没有任何作用,而且很麻烦。您必须按键才能查看是否已连接,这很痛苦。我们在运行级别3中运行,因此控制台处于文本模式,不涉及X11。


SLES10使用SysV初始化。许多发行版都使用systemd,这是Arch的可能解决方案Debian 6和7系统默认使用kbd,请单击此处
basic6 2015年

Answers:


85

您可以通过以下方式验证内核用于虚拟控制台空白的超时时间:

$ cat /sys/module/kernel/parameters/consoleblank
600

该文件是只读的,超时以秒为单位指定。当前的默认值似乎是10分钟。

您可以通过在虚拟控制台上输入以下命令来更改该值(如果您在xterm中,则必须通过单击例如Ctrl+ Alt+ 更改为虚拟控制台F1)。

$ setterm -blank VALUE

分钟为单位指定新值的位置。值为0将禁用消隐:

$ cat /sys/module/kernel/parameters/consoleblank
600
$ setterm -blank 0
$ cat /sys/module/kernel/parameters/consoleblank
0

setterm还有其他与省电相关的选项,最有用的组合似乎是:

$ setterm -blank 0 -powersave off

因此,要在启动时永久/自动禁用虚拟控制台空白,您可以:

  1. 添加consoleblank=0到内核​​参数(编辑grub配置)
  2. setterm -blank 0命令添加到一个rc-local或等效的启动脚本中
  3. setterm输出添加到,/etc/issue因为/etc/issue在每个虚拟控制台上都会输出:

    # setterm -blank 0 >> /etc/issue

从上面选择一种。


2
PS:在Ubuntu 11.10系统(Thinkpad X200)上,我注意到一个错误,该错误是内核的控制台空白会干扰正在运行的X11会话。这意味着在最后一个键按下X11后的10分钟内,将显示空白,您必须循环到虚拟控制台才能恢复X11屏幕(例如,在播放视频时非常烦人)。这独立于X11下的DPMS /屏幕保护程序相关设置(请思考xset等)。因此,对于受影响的系统,如上所述禁用虚拟控制台空白是一种快速的解决方法。
maxschlepzig 2012年

嗯。由于某些原因,我/sys/module/kernel/parameters/consoleblank在CentOS 5.x服务器上看不到。可以将其设置为其他名称吗?
Mike B

1
在RHEL 5和6,我发现,把/bin/setterm -blank 0 -powerdown 0 -powersave off/etc/rc.local将工作的伟大。但是在RHEL 7上,它将失败。consoleblank=0在该平台上可以添加内核参数。
David C.

7
请注意,您实际上不必setterm在虚拟控制台中运行。您也可以将其重定向到它:setterm -blank 0 > /dev/tty1运行正常。或者您可以使用setterm -blank < /dev/tty1tty1查询当前值或setterm -blank force < /dev/tty1强制消隐。
亚历山大·阿梅尔金

@AlexanderAmelkin-在/ dev / tty1中重定向到/从/ dev / tty1重定向/在RHEL 7中不起作用。/ dev / tty1确实是本地控制台,但是/ dev / console似乎都没有任何作用。
保罗

15

尝试使用此:

setterm -blank

1
@markus_b:因此将此命令添加到初始化脚本中(例如,/etc/init/markus-console.conf如果您使用Upstart,或者/etc/init.d/markus-console.sh/etc/rd?.dSysVinit中加上符号链接,则我不知道实际的SuSE位置)。
Gilles

2
@mattdm,不是真的- systemd通常带有rc-local兼容性服务-或您可以轻松添加自定义服务...
maxschlepzig 2012年

3
@mattdm为什么您不能只编写一个运行该命令的单元?
kyrias 2013年

1
提示:请先退出tmux,否则将不起作用。
科迪·赫斯


14

根据:https : //wiki.archlinux.org/index.php/Display_Power_Management_Signaling#DPMS_Interaction_in_a_console_with_setterm

防止屏幕关闭(在控制台中)

$ setterm -blank 0 -powerdown 0

或者,您可以使用以下命令永久禁用控制台空白:

# echo -ne "\033[9;0]" >> /etc/issue


3
第二种解决方案在Marvell ARM Debian上像魅惑一样工作。所有其他解决方案均无效。
阿列克谢·斯维里多夫

13

我已经实现并测试了以下配置,该配置在目前我的主力sles10上可以正常使用。

/etc/init.d/boot.local

setterm -blank

看起来就足够了。感谢Uku Loskit和Gilles向正确的方向前进。


1
我已经毫不留情地编辑了您的答案,因此,如果您不喜欢它,请不要回滚。另外,请接受您的答案,因为这是实际的解决方案。如果您真的有更好的答案,则不要仅仅因为您很感激它就将您引向实际答案,所以不应该接受答案。
tshepang 2011年

对不起,喜欢原始版本更好。
markus_b 2011年

我必须添加投票最多的答案-省掉电源,因为如果我的系统板上的ipmi没有两个部分都傻了,那我就傻了。足够讽刺的是,它不会在使用之间保持设置,并且当这些功能在窗口中弹出时弹出到前景,并开始每秒或大约2次循环通过约4种不同大小的窗口,从而几乎无法捕获窗口并手动调整其大小/取消节能的期限:(
肯德里克

13

唯一的永久解决方案是添加consoleblank=0到内核​​命令行。您可以在以下位置查看值(默认为600秒):

/sys/module/kernel/parameters/consoleblank

(请注意该文件是只读的)。更改consoleblank值的唯一方法是使用新的内核命令行选项重新引导。


3
最后一句话是错误的-您无需重新启动即可更改的值consoleblank。看我的答案。
maxschlepzig 2012年

我还没有找到setterm -blank来可靠地工作。在注销或切换到其他虚拟终端后,有时似乎会重置。
amcnabb 2012年

要使用grub添加此永久设置,请编辑/boot/grub/grub.conf并将consoleblank = 0附加到以“ kernel / boot / vmlinuz ...”开头的行。然后重启。
Hoylen 2014年

1
“ only”在这里看起来像是一个字符串……
notlesh

5

如果只想防止用户登录后屏幕空白,则只需追加setterm -powersave off -blank 0$HOME/.bash_profile各个用户即可。


5

这个问题让我感到非常震惊。上面使用setterm和从/重定向到/ dev / tty0的所有技巧在我的ssh中均无效。

然后我意识到了一种禁用它的方法:

TERM=linux setterm -blank 0 -powerdown 0  -powersave off >/dev/tty0 </dev/tty0

TERM = linux替换了默认的TERM(在我的机器上是xterm-256color),并帮助setterm从tty0查询适当的参数。

您可以通过以下方式检查结果

cat /sys/module/kernel/parameters/consoleblank

应该是0。如果是600,则技巧还没有解决。


3

/usr/bin/setterm -powerdown 0 可能也有帮助

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.