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.
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:
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
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).
también me sugirieron esto, pero no aplicaba, ya que no me funciono el setterm.
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...