Como altero o comportamento de apagamento da tela nos terminais virtuais do Linux?
Por exemplo, se eu mudar para um VT a partir do X, efetue login e deixo o sistema em paz por 5 minutos ou mais, a tela ficará em branco como um protetor de tela. Ele volta com qualquer pressionamento de tecla, como um protetor de tela.
Quero apenas alterar o tempo limite, mas também estou interessado em outras configurações.
Se ajudar, um dos meus sistemas está executando o Ubuntu 10.04 com os drivers gráficos. fbset
mostra o console usando o radeondrmfb
dispositivo framebuffer.
linux
console
screensaver
framebuffer
virtual-terminal
charlatão quixote
fonte
fonte
Respostas:
setterm
A resposta da @ whitequark é uma ferramenta razoável para o espaço do usuário, mas não é a história toda.O comportamento padrão de apagamento do console é inserido no kernel no momento da compilação. É configurável no momento da inicialização com o paramater consoleblank = ou no espaço do usuário com
setterm
. Na documentação do kernel ( kernel-parameters.txt ):Aqui estão as opções, seus padrões no meu sistema Ubuntu e suas esferas de influência:
setterm -blank [0-60]
; sempre informa 0 quando consultado; eficaz quando executado em um VT real; afeta todos os TTYs reais; não é eficaz quando executado em sessões de tela em um VT.setterm -powerdown [0-60]
; sempre relata "3]" (??); parece não ter nenhum efeito. Os kernels do Ubuntu não ativam APM_DISPLAY_BLANK , e isso pode estar relacionado.consoleblank=N
; o padrão é 600 (10 minutos); afeta todos os VTs reais; afeta sessões de tela em uma TV; não há como definir durante a execução.Portanto, minhas opções para alterar o padrão são uma das seguintes:
setterm -blank X
(X em minutos, 0 para desativar) a um arquivo init do shell como .bashrc .setterm -blank X
ao /etc/rc.local .consoleblank=Y
(Y em segundos, 0 para desativar) à linha de comando do kernel, adicionando-a às listas de parâmetros em / etc / default / grub , GRUB_CMDLINE_LINUX ou GRUB_CMDLINE_LINUX_DEFAULT . (Não esqueçaupdate-grub
.)fonte
setterm -blank X
não funcionou para mim no tmux , mas funcionou perfeitamente quando saí do tmux antes de executar o comando.GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"
e atualizar sua configuração do grub comgrub[2]-mkconfig -o /boot/grub/grub.cfg
.3]
poissetterm -powerdown
é apenas a meia verdade:setterm -powerdown 3 | hexdump -c
retorna033 [ 1 4 ; 3 ]
. Sem saber o que deve interpretar esta sequência de escape ...Tente
setterm -blank $minutes
(ou passe 0 para desativar);-powersave
A opção também pode estar relacionada.setterm
também tem muitas outras opções úteis.Se você deseja definir esses atributos na inicialização do sistema, considere escrever um initscript. Este é apenas um script colocado no
/etc/init.d
diretório Que seja chamadosetterm
:Em seguida, torne-o executável:
E finalmente, crie os links simbólicos /etc/rcX.d (a maneira Debian):
(Se você se cansar desse comportamento, faça
# update-rc.d -f setterm remove
. Observe que esse-f
deve ser o primeiro argumento).fonte
-powerdown
configuração que está em vigor. que tal definir um padrão inicializado para todo o sistema? está executandosetterm -blank X
ousetterm -powerdown Y
no /etc/rc.local (ou ~ / .bashrc ) é razoável?rc.local
realmente funcionar. (Aupstart
migração recente estragou algumas coisas, pois ela aparentemente existe e funciona no meu sistema.) Caso contrário, você deve criar um initscript. Isso é fácil: no nosso caso, ele deve inicializar tudo quando passadostart
como primeiro argumento e não fazer outra coisa. Vou descrever isso na minha resposta.setterm -blank X >/dev/ttyN
parece não funcionar, então não acho que o conceito initscript funcione. deparei com um parâmetro de boothime e fiz mais algumas pesquisas. eu pareço estar errado sobre-powerdown
e-powersave
; não foram totalmente testados, mas eles não estão funcionando no meu sistema.setterm -blank X
funciona, apenas a partir de um VT real, e afeta todos os VTs, portanto, executar uma vez via /etc/rc.local é razoável. (Upstart não tira rc.local , apenas o /etc/rcx.d coisas.)setterm
emite seqüências de escape ativadasstdout
, mas verifica o tipo TTY comstdin
: Acabei de verificar esetterm ... >/dev/ttyN </dev/ttyN
funciona como pretendido.Se alguém está procurando outra solução possível para o Debian (possivelmente não o Ubuntu):
Em
/etc/kbd/config
, procure uma configuração chamada "BLANK_TIME":Altere para 0, isso irá desativá-lo:
Testado no Debian 6 e 7.
fonte
Se você estiver executando um Ubuntu mais recente que use upstart, poderá usar:
Uma pequena explicação do que está acontecendo aqui:
Versões mais recentes do Ubuntu usam upstart para inicialização do sistema. Com o inicio, os consoles Linux são configurados com arquivos de configuração armazenados em / etc / init. O comando acima começa iterando sobre cada um desses arquivos de configuração:
O nome do arquivo de configuração inicial do tty em $ file é usado para criar o nome do dispositivo tty:
É criado um comando inicial "pós-inicialização" que executa "setterm" para desativar o apagamento da tela e a economia de energia após o início do tty:
E, finalmente, esse comando é anexado ao arquivo de configuração inicial:
fonte
Nos meus sistemas (várias versões do RedHat Enterprise Linux), descobri que são necessárias diferentes abordagens.
Para meus sistemas RHEL 5 e 6, posso adicionar a linha
/bin/setterm -blank 0 -powerdown 0 -powersave off
para
/etc/rc.local
. Isso desativa a tela do console que fica em branco na inicialização do sistema.Descobri que isso não funciona nos sistemas RHEL 7. No RHEL7, a execução de setterm do rc.local causa um erro:
setterm: $TERM is not defined.
O comando funciona a partir de um shell interativo, onde $ TERM é definido (como
linux
). Se eu forçar o setterm a usá-lo:/bin/setterm -term linux -blank 0 -powerdown 0 -powersave off
Então eu recebo um erro diferente:
setterm: cannot (un)set powersave mode: Inappropriate ioctl for device
Mesmo que o mesmo comando funcione bem em uma sessão interativa. Definir o
consoleblank
parâmetro do kernel funcionou.No RHEL7, edite
/etc/default/grub
e acrescenteconsoleblank=0
aoGRUB_CMDLINE_LINUX
parâmetro. Em seguida, executegrub2-mkconfig -o /boot/grub2/grub.cfg
e reinicie.Não tentei definir
consoleblank
no RHEL5 ou 6.fonte
</dev/tty1 >/dev/tty1
ou algo para fazê-lo funcionarSequências CSI privadas do console Linux
Para definir o
sleep mode/screensaver
tempo de inserção (onde X é um tempo em minutos; 0 = nunca):(do console serial)
ou (do console do framebuffer)
ou para configurá-lo em cada inicialização, use
/etc/inittab
:refs:
fonte
A adição
gnome-screensaver-command --exit
de meu.profile
arquivo corrigiu esse problema para mim no Debian Linux (Wheezy).Pensei em acrescentar isso para ajudar outras pessoas que estão arrancando os cabelos tentando parar de apagar a tela.
Uma caixa de seleção intitulada "Tela escura para economizar energia" está com defeito. Mesmo desmarcada, AINDA deixará a tela em branco de acordo com o tempo de inatividade selecionado.
ATUALIZAÇÃO: Eu realmente precisava
sleep 30 && /usr/bin/gnome-screensaver-command --exit &
fazê-lo funcionar corretamente. O protetor de tela do GNOME parece iniciar muito depois do processamento do .profile.fonte