Cover Image

Apagar pantalla por remoto

Julio 8, 2025 - Tiempo de lectura: 5 minutos

Problema:

Tengo el servidor en una netbook y quiero que al menos tenga la pantalla apagada (si bien no consume mucho, la idea es que consuma lo menos posible) pero esto no lo lograba si no me logueaba en el servidor en forma física con X, ya que con tty solo no se apagaba, si lo hacía a través de X, si en un momento se apagaba, pero quedaba la sesión abierta y no me interesaba.

Probando varios métodos:

Si no tienes un entorno gráfico (Xorg/Wayland) y estás trabajando en la consola (TTY), los comandos como xset no funcionan.

Varias soluciones para "apagar" la pantalla de tu netbook con Debian 12 en modo consola:

1. Usar el comando setterm

Este es el comando más directo y probablemente la mejor opción. Te permite controlar varios parámetros de la terminal, incluido el apagado de la pantalla (pero a mí no me funcionó).

Para apagar la pantalla inmediatamente:

Bash

sudo setterm -blank force


Este comando fuerza que la pantalla se quede en blanco. Se reactivará con cualquier pulsación de tecla o movimiento del ratón. Es ideal si quieres apagar la pantalla de forma manual en un momento específico (este método me hubiera gustado usar, pero no anduvo en mi hardware, supongo que tendría que entrar en el bios, pero no quería reiniciar el servidor solo para eso).

Para establecer un tiempo de inactividad para que la pantalla se apague:

Bash

setterm -blank 1

Este comando hará que la pantalla se apague después de 1 minuto de inactividad. Puedes cambiar el número por la cantidad de minutos que desees. Un valor de 0 desactiva el apagado automático.

Para apagar el monitor usando DPMS (Display Power Management Signaling):

Bash

sudo vbetool dpms off

vbetool es otra herramienta que puede controlar el estado de energía del monitor. Yo no lo  tenía instalado, así que hice el típico  sudo apt install vbetool. Para encender la pantalla de nuevo, usa sudo vbetool dpms on. Ten en cuenta que, dependiendo del hardware, es posible que tengas que escribir el comando a ciegas para encenderla de nuevo (y esto no me gustó para nada). Y seguí buscando alternativas 

2. Configurar el parámetro del kernel consoleblank

Esta es una solución más permanente y se aplica al inicio del sistema (esto no era posible en mi caso- no quería reiniciar). Sí que es ideal para un servidor que no se usa de forma interactiva con el teclado y el ratón.

Edita el archivo de configuración de GRUB(tampoco usé esto, por las mismas razones que antes):

Bash

sudo nano /etc/default/grub

Se busca la línea que comienza con GRUB_CMDLINE_LINUX_DEFAULT= y se añade el parámetro consoleblank=XX, donde XX es el número de segundos de inactividad antes de que la pantalla se apague. Por ejemplo, para que se apague después de 60 segundos (1 minuto), la línea podría verse así:


GRUB_CMDLINE_LINUX_DEFAULT="quiet consoleblank=60"

Si ya hay otros parámetros en el mismo, simplemente se añade dentro de las comillas.

Guardar los cambios (Ctrl + O, luego Enter) y salir del editor (Ctrl + X).

Actualizar GRUB (ahí estaba mi problema, no podía hacer esto) para que los cambios surtan efecto:

Bash

sudo update-grub
sudo reboot

Luego de esto la pantalla se debería se apagará automáticamente después del tiempo especificado sin afectar a los servicios que se estén ejecutando (de hecho lo he probado antes y si, al reiniciar systemd cuando uno pone los servicios como enable, logra que tras un reinicio se cargue automáticamente, sin necesidad de hacerlo manualmente).

3. Crear un script de inicio

también me sugirieron esto, pero no aplicaba, ya que no me funciono el setterm.

4. Ahora viene lo interesante (y que no sabía):

La solución: Redirigir el comando a la consola física

Para que vbetool funcione desde una sesión remota, se necesita redirigir su entrada/salida a la consola física del servidor.

Primero, se necesita saber en qué TTY (consola) estás trabajando. Generalmente, es tty1 o tty7 si tienes un entorno gráfico. En mi caso, que usas el modo consola, probablemente sea tty1 o tty2, y si como estaba yo solo era obvio tty0, pero vamos a ver como verificamos.

Se Puede verificarlo en el servidor localmente con el comando tty.

Y una vez que sepas cuál es la consola, se puede usar un comando como este para redirigir la salida:

Bash

sudo vbetool dpms off < /dev/tty1 > /dev/tty1

este comando no me anduvo y luego probé la magia:

O, de forma más simple y robusta, puedes especificar el terminal:

Bash

sudo chvt 1
sudo vbetool dpms off

resulta que chvt es un comando que te permite cambiar de TTY, y aunque lo ejecutes de remoto, si lo haces con sudo, tienes los permisos para cambiar de consola.

Explicación del comando (para mi yo del futuro, siempre me olvido las cosas):

sudo: Es necesario para tener permisos de acceso a los dispositivos de hardware.

chvt 1: Redirige la entrada estándar del comando para que provenga del TTY1 (la consola física).

Advertencia importante (Y por eso hago también el post):

Si se apaga la pantalla de esta manera desde SSH, no podrás ver nada en la pantalla del servidor. La pantalla permanecerá en blanco (en realidad negro, jajaja). Para volver a encenderla, tendrás que ejecutar el comando correspondiente desde otra sesión de SSH(por eso la ayuda memoria):

Bash

sudo chvt 1
sudo vbetool dpms on


5. Conclusión:

He aprendido una nueva forma de manejar el hardware por ssh, usando el comando chvt y el programa vbetool y dpms, todo una maravilla. 

Hasta la próxima...

Acerca de

Blog del Profe Juan.

Contador de Visitas Diarias

49