Como posso apagar a tela da linha de comando pelo SSH?

12

Eu preciso de uma maneira de mostrar a tela preta executando o comando no console usando a conexão SSH. Monitor não deve ir para o modo de espera Eu só preciso de uma tela preta para esconder tudo o que está na tela. A tela deve ficar preta até que eu forneça outro comando para mostrar o conteúdo da tela.

Adição: Seria bom se o comando funcionasse no Ubuntu, Lubuntu e Xubuntu.

Adição 2: Eu também tenho um projetor que precisa de supressão. Eu quero usar o SSH para se conectar ao meu servidor e mostrar a tela em branco. Se eu tentar desligar o projetor "Nenhum sinal" é exibido na tela.

    
por JPX 04.01.2017 / 17:51

3 respostas

15

Resposta curta:

xrandr --output DVI-I-1 --brightness 0

onde DVI-I-1 é o nome da sua tela.

O contrário:

xrandr --output DVI-I-1 --brightness 1

para definir o brilho normal novamente.

Para obter o nome da tela

Basta executar o comando:

xrandr

Na saída, você encontrará o nome da tela, na linha, incluindo connected

Script pequeno para escurecer a tela ou voltar ao normal

O script pode ser usado para definir (todas) as telas conectadas para preto e vice-versa. O script encontra suas telas automaticamente.

#!/usr/bin/env python3
import subprocess
import sys

arg = sys.argv[1]

screens = [l.split()[0] for l in subprocess.check_output("xrandr").decode("utf-8").splitlines()
           if " connected" in l]

val = "0" if arg == "black" else "1"
for s in screens:
    subprocess.Popen(["xrandr", "--output", s, "--brightness", val])

Para executar

  • Copie o script em um arquivo vazio, salve-o como set_black.py
  • Execute-o com:

    python3 /path/to/set_black.py black
    

    para escurecer a tela ou

    python3 /path/to/set_black.py normal
    

    para definir o brilho para normal novamente.

Enquanto a resposta acima deve rodar bem em todas as localmente distro do Ubuntu, a questão acaba sendo em ssh / remote (a informação foi editada na questão).

No caso de uma situação remota, precisaríamos definir a variável $DISPLAY corretamente. Se a variável de exibição é, e. :0 , precisaríamos executar o script com:

DISPLAY=:0 python3 /path/to/script.py black

A variável não é necessariamente :0 . Esta postagem em U & L parece excelente e definiu a variável DISPLAY na máquina remota.

    
por Jacob Vlijm 04.01.2017 / 17:54
3

Basta executar:

gnome-screensaver-command -a

Observação: Isso também chamará a tela de bloqueio, a menos que você desative a opção "Bloquear" nas configurações do sistema:

    
por Android Dev 04.01.2017 / 18:02
3

Edit: A questão foi alterada desde que eu forneci esta resposta. Deixarei esta resposta em suspenso, porque ela fornece algumas informações que podem ser úteis.

Se por console você quer dizer um dos consoles virtuais de célula de caractere, então instale vlock :

sudo apt-get -y install vlock

Você pode ocultar e bloquear seu console virtual:

vlock

Ao desbloquear o console, a tela não é restaurada. Se você não quer perder o conteúdo da tela, sugiro fazer login em um segundo console; quando você quiser bloquear a tela, mova-o para esse segundo console e digite

vlock -a

Isso bloqueará todos os consoles e impedirá a troca de console. Depois de desbloquear os consoles, você pode voltar para o console de trabalho principal e encontrar o conteúdo da tela intacto.

    
por AlexP 04.01.2017 / 18:09