Desativar o apagamento da tela no console de texto

75

Estou executando clusters linux, principalmente no SLES10. Os servidores são na sua maioria blades, acessados ​​via console remoto. Há um console real na sala do servidor, mas desligado.

Gostaria de desativar a tela em branco, pois não serve para nada e é um incômodo. Você tem que pressionar a tecla para ver se você está conectado, o que é uma dor. Como estamos executando no nível de execução 3, o console está no modo de texto, sem o X11 envolvido.

markus_b
fonte
O SLES10 usa o SysV init. Muitas distribuições usam systemd, aqui está uma solução possível para o Arch . Os sistemas Debian 6 e 7 usam kbd por padrão, clique aqui .
basic6
Para o Debian, consulte unix.stackexchange.com/questions/238846 .
JdeBP # 10/18

Respostas:

85

Você pode verificar o tempo limite que o kernel usa para apagar o console virtual via:

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

Este arquivo é somente leitura e o tempo limite é especificado em segundos. O padrão atual parece ser 10 minutos.

Você pode alterar esse valor digitando o seguinte comando em um console virtual (se você estiver dentro de um xterm, precisará mudar para um console virtual pressionando, por exemplo, Ctrl+ Alt+ F1).

$ setterm -blank VALUE

Onde o novo VALUE é especificado em minutos . Um valor 0 desativa o apagamento:

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

O setterm tem outras opções relacionadas à economia de energia, a combinação mais útil parece ser:

$ setterm -blank 0 -powersave off

Assim, para desativar permanente / automaticamente o apagamento do console virtual na inicialização, você pode:

  1. adicionar consoleblank=0aos parâmetros do kernel (editar configuração do grub)
  2. adicione o setterm -blank 0comando a um rc-localscript de inicialização ou equivalente
  3. adicione a settermsaída para /etc/issuesince /etc/issueé saída em cada console virtual:

    # setterm -blank 0 >> /etc/issue

Escolha uma alternativa acima.

maxschlepzig
fonte
2
PS: Em um sistema Ubuntu 11.10 (Thinkpad X200), notei um bug em que o console em branco pelo kernel interfere em uma sessão X11 em execução. Isso significa que, exatamente 10 minutos após a última tecla, pressione o visor do X11 em branco e você precisará ir para um console virtual para recuperar a tela do X11 (muito irritante durante, por exemplo, a reprodução de vídeo). Isso é independente das configurações relacionadas ao DPMS / protetor de tela em X11 (pense xsetetc.). Portanto, desabilitar o apagamento de console virutal como descrito acima é uma solução rápida para os sistemas afetados.
maxschlepzig
hmmm. Por alguma razão, não vejo /sys/module/kernel/parameters/consoleblankno meu servidor CentOS 5.x. Poderia ser definido com um nome diferente?
21714 Mike
1
No RHEL 5 e 6, descobri que colocando /bin/setterm -blank 0 -powerdown 0 -powersave offem /etc/rc.localseria um grande trabalho. No RHEL 7, no entanto, isso falharia. A adição consoleblank=0aos parâmetros do kernel funciona nessa plataforma.
David C.
7
Observe que você não precisa realmente executar settermem um console virtual. Você também pode redirecioná-lo para ele: setterm -blank 0 > /dev/tty1funciona muito bem. Ou você pode usar setterm -blank < /dev/tty1para consultar o valor atual de tty1 ou setterm -blank force < /dev/tty1para forçar o apagamento.
9186 Alexander Amelkin #
@AlexanderAmelkin - redireciona para / de / dev / tty1 não funciona no RHEL 7. Qual distro você estava usando para fazer isso? / dev / tty1 é de fato o console local, mas nem isso / dev / console pareciam fazer alguma coisa.
Paul Paul
15

Tente usar isto:

setterm -blank
Uku Loskit
fonte
1
@markus_b: Então adicione este comando a um script init (algo como /etc/init/markus-console.confse você usar o Upstart ou /etc/init.d/markus-console.shmais links simbólicos no /etc/rd?.dSysVinit, não sei os locais reais do SuSE).
Gilles
2
@mattdm, não é verdade - systemdgeralmente vem com um rc-localserviço de compatibilidade - ou você pode facilmente adicionar serviços personalizados ...
maxschlepzig
3
@mattdm Por que você não seria capaz de escrever apenas uma unidade que executa esse comando?
Kyrias #
1
DICA: Saia do tmux primeiro ou isso não funcionará.
Cody Hess
14

De acordo com: https://wiki.archlinux.org/index.php/Display_Power_Management_Signaling#DPMS_Interaction_in_a_console_with_setterm

Impedir que a tela desligue (no console)

$ setterm -blank 0 -powerdown 0

Como alternativa, você pode desativar o apagamento do console permanentemente usando o seguinte comando:

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

Grzegorz Wierzowiecki
fonte
3
A segunda solução funciona como um encanto no Marvell ARM Debian. Todas as outras soluções não fazem nada.
Alexey Sviridov 22/10/12
13

Eu implementei e testei a seguinte configuração, que funciona bem no sles10, meu cavalo de batalha no momento.

No

/etc/init.d/boot.local

Adicionar, acrescentar

setterm -blank

parece que é tudo o que preciso. Obrigado por Uku Loskit e Gilles pelo impulso na direção certa.

markus_b
fonte
1
Eu editei sua resposta sem piedade, portanto, não hesite em reverter se você não gosta. Além disso, aceite sua resposta porque é a solução real. Você não deve aceitar uma resposta apenas porque é grato por ter levado à resposta real, se houver realmente uma resposta melhor.
tshepang
Desculpe, como a versão original melhor.
21468 Markus_b #
Eu tive que adicionar as respostas mais votadas - economize, pois o ipmi na minha systemboard ficou estúpido se não tivesse as duas partes. Infelizmente, ele não mantém as configurações entre os usos e quando esses recursos entram na janela aparecem em primeiro plano e começam a percorrer a janela por cerca de 4 tamanhos diferentes uma vez a cada segundo ou 2, tornando quase impossível capturar a janela e redimensioná-la manualmente / chutar o termo fora do poder salvar :(
Kendrick
13

A única solução permanente é adicionar consoleblank=0à linha de comando do kernel. Você pode visualizar o valor (cujo padrão é 600 segundos) em:

/sys/module/kernel/parameters/consoleblank

(observe que o arquivo é somente leitura). A única maneira de alterar o valor do consoleblank é reiniciar com a nova opção de linha de comando do kernel.

amcnabb
fonte
3
A última frase está errada - você não precisa reiniciar para alterar o valor de consoleblank. Veja minha resposta.
maxschlepzig
Não achei o setterm -blank funcionando de maneira confiável. Às vezes, parece ser redefinido após o logout ou alternar para outros terminais virtuais.
Amcnabb 13/03/12
Para adicionar essa configuração permanente ao grub, edite /boot/grub/grub.conf e anexe consoleblank = 0 às linhas que começam com "kernel / boot / vmlinuz ...". Então reinicie.
Hoylen
1
"only" parece uma palavra de corda aqui ...
notlesh 15/01
5

Se você deseja apenas impedir que a tela fique em branco após o login do usuário, basta anexar setterm -powersave off -blank 0aos $HOME/.bash_profilerespectivos usuários.

jurijcz
fonte
5

Fiquei realmente impressionado com esse problema. Todos os truques acima com o uso de setterm e redirecionamento de / para / dev / tty0 não funcionaram no meu ssh.

Então eu percebi uma maneira de desativá-lo:

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

TERM = linux substitui o TERM padrão (que é xterm-256color na minha máquina) e ajuda o setterm a consultar os parâmetros adequados de tty0.

Você pode verificar o resultado

cat /sys/module/kernel/parameters/consoleblank

Deve ser 0. Se for 600, o truque não deu certo.

George Shuklin
fonte
3

/usr/bin/setterm -powerdown 0 pode ajudar também

cnd
fonte