Apague el monitor usando la línea de comando

60

Estoy ejecutando Ubuntu Server en mi computadora portátil. Realmente no hay razón para que la pantalla esté encendida. He estado tratando de usar este comando para apagar la pantalla:

sleep 1 && xset dpms force off

El problema es que recibo el siguiente error

unable to open display "".

¿Alguna idea de lo que está pasando / qué está mal? ¿Alguna otra sugerencia sobre cómo hacer esto?

Pájaro enojado
fuente
¿Tienes un servidor X instalado? ¿Y se está ejecutando?
enzotib
@enzotib Creo que está instalado. En cuanto a su funcionamiento, no estoy seguro. ¿Cómo puedo verificar?
AngryBird
1
Intente ejecutar esto primero:export DISPLAY=:0.0
RobinJ
Salida no nula desde dpkg -l | grep xserver-xorga instalar. Salida no nula desde pgrep -fl Xa ejecutarse. Por cierto, si está ejecutando, debería estar en una sesión gráfica.
enzotib
1
@ WarriorIng64: es una computadora portátil
enzotib

Respuestas:

59

Para apagar el monitor en la consola, el comando es el siguiente:

sudo vbetool dpms off

Para recuperar el control de la consola al presionar la tecla Intro , sugiero

sudo sh -c 'vbetool dpms off; read ans; vbetool dpms on'
enzotib
fuente
2
Probablemente quieras alias este lote a algo útil.
Danny Staple
1
vbetool está disponible a través desudo apt-get install vbetool
David Clarke
1
En mi caso, este comando realmente apagó la pantalla y no el xsetuno
golimar
Por extraño que parezca, el comando apaga 2 de 3 pantallas, el tercero queda en blanco por un tiempo antes de que la máquina se reinicie por sí sola si el comando se ejecutó a través de ssh.
danba
@enzotib, hice clic accidentalmente para votar, lo siento. Edite un poco la respuesta para que pueda eliminar el voto negativo.
andras.tim
32

Pruebe estos comandos ...

Apagar:

xset -display :0.0 dpms force off 

Encender:

xset -display :0.0 dpms force on 

Si su pantalla se apaga y luego se vuelve a encender inmediatamente, intente lo siguiente, que agrega un retraso de 1 segundo antes de apagar la pantalla. Esto brinda la posibilidad de que el servidor X procese todos los eventos antes de apagar la pantalla.

sleep 1 && xset -display :0.0 dpms force off 
Glauber Cardoso
fuente
¿Cómo sé qué pantalla es cuál?
Karl Morrison
1
Lo siguiente funcionó para mí (también parcialmente inspirado por la respuesta de @ enzotib ):xset -display $DISPLAY dpms force off; read temp; xset -display $DISPLAY dpms force on
stiemannkj1
Ten cuidado con esto. No puedo volver a encender mi monitor con una máquina de prueba después de la emisiónforce off
Zmart
2
Actualización: Retirar y volver a conectar todos los cables (incluida la alimentación) en el monitor ha solucionado la situación.
Zmart
27

El xsetcomando mencionado en otras respuestas apagará todos los monitores si tiene la configuración de múltiples monitores. Sin embargo, si desea apagar solo uno o algunos de los monitores que debe usar xrandr.

Primer xrandr -qcomando de ejecución , que enumerará todos los monitores y su configuración de pantalla actual. Al comienzo de los detalles de cada monitor, encontrará el nombre del monitor establecido por el sistema. Tienes que hacer un seguimiento de eso.

Tengo dos monitores (uno está conectado al puerto DVI y otro al puerto VGA) y cuando ejecuto el comando veo esto:

Screen 0: minimum 320 x 200, current 1360 x 768, maximum 2726 x 2726
DFP1 connected 1360x768+0+0 (normal left inverted right x axis y axis) 304mm x 228mm
   1360x768       59.7*+
   ... (more details are shown here, but I have hidden it)

CRT1 connected 1360x768+0+0 (normal left inverted right x axis y axis) 410mm x 230mm
   1360x768       59.8*+   60.0  
   ... (more details are shown here, but I have hidden it)

En esta salida, el monitor conectado al puerto DVI está etiquetado como DFP1y otro como CRT1. Entonces, si quiero apagar el monitor secundario (es decir CRT1), he ejecutado este comando:

xrandr --output CRT1 --off

si desea volver a encender ese monitor, entonces ha ejecutado este comando:

xrandr --output CRT1 --auto
Harshith JV
fuente
Tengo 3 monitores, 1 VGA, 1 DVI y 1 HDMI. Cuando ejecuté: xrandr --output VGA1 --auto, activó el VGA, pero clonó el monitor DVI.
ThiagoPonte
Hmm extraño. Intente --en lugar de --auto
Harshith JV
@ HarshithJ.V. ¡Esta es una buena respuesta! Su mejor que la xsetcausa vueltas xset sobre si sólo tiene que pulsar la pantalla táctil, etc. Por cierto espero que me recuerda de su compañía anterior :-)
Nishant
@Nishant Gracias por los cumplidos. Extrañamente no te recuerdo. Por favor, hágame ping en cualquier otra red social, ya que no podemos chatear porque está en contra de las reglas.
Harshith JV
Si recibió un error de crtc, escriba "chvt 7" antes del comando xrandr, para que lea "chvt 7 && xrandr -d: 0 --output eDP1 --auto"
haytham-med haytham
12

Acabo de instalar Ubuntu Server 18.04.1 (sin GUI, X, ni nada gráfico), y después de romper la espalda anoche tratando de apagar la pantalla, finalmente encontré el comando mágico:

setterm --blank 1

Después de ejecutar el comando, la pantalla se apagará automáticamente cada minuto (si está inactiva).


Y aún mejor, si desea que el comando se ejecute automáticamente en el arranque, puede agregarlo a la línea de comandos de GRUB , para ello tenemos que editar el siguiente archivo:

sudo nano /etc/default/grub

Una vez allí, solo agregue consoleblank=60a GRUB_CMDLINE_DEFAULT, debería verse así:

GRUB_CMDLINE_LINUX_DEFAULT="quiet consoleblank=60"

Luego cierre el archivo y guárdelo, después de eso solo ejecute sudo update-gruby listo , cada vez que inicie la pantalla se apagará automáticamente cada 60 segundos. (de nuevo, si está inactivo).

Y de esta manera (agregando el consoleblank al GRUB) funciona incluso desde terminales remotos (ssh).

¡Disfrutar! (de nuevo)

Graffity Boy
fuente
1
Al ejecutar el comando anterior, obtengo: "setterm: terminal xterm-256color no admite --blank". ¿Qué puede estar mal?
zx485
1
¿Estás intentando desde una sesión remota?
Boy Graffity
@ zx485 Consulte la respuesta actualizada, ahora puede hacer que la pantalla se apague desde una sesión remota. Estoy seguro de que esto resolverá su problema
Boy Graffity
6

Si tiene varios monitores, use esto:

Apagar su segundo monitor:
(Suponiendo que CRT-0 es su monitor izquierdo y CRT-1 es su monitor derecho)
xrandr --output CRT-1 --off
Encender su segundo monitor: De
xrandr --output CRT-1 --right-of CRT-0 --auto
esta manera, xrandr sabe que no debe duplicar la primera pantalla.

Gusano oscuro
fuente
Estaba probando esto, apagar una pantalla de esta manera es más como deshabilitarla, por ejemplo, la pantalla todavía está encendida. Simplemente no se usa. La --offpantalla 'd no se puede volver a encender con el botón de encendido de la pantalla (porque todavía está encendida / nunca se apagó). También se metió con la configuración de pantalla de mi escritorio (desde el escritorio extendido hasta las pantallas reflejadas). Si esto se hizo para apagar ambas pantallas, no estoy seguro de que sea fácil volver a encenderlas sin iniciar sesión en TTY y borrar el archivo monitor.xml donde sea que esté. Cuanto más sepas.
ThorSummoner
0

Estaba teniendo el mismo problema. Lo que descubrí es que en mi computadora portátil (un viejo Acer aspire) se admite el botón de bloqueo de pantalla predeterminado. Esto podría ser algo así fn+F6.

Esta solución probablemente no funcionó en el pasado. Espero que ayude a cualquiera que se encuentre con este problema.

DutchJelly
fuente