Как программно выключить монитор Linux(ubuntu/debian)?
Возникает интересная проблема: когда вы отключите ваш основной компьютер, то разумный монитор проверит нет ли сигнала на втором входе. На втором входе сигнал (экран с запросом логина или «чёрный экран») скорее всего будет, а потому монитор вместе с основным компьютером не выключится, а займётся демонстрацией консоли сервера. Не руками же каждый раз включать и выключать монитор?
Конечно нет. Надо приучить сервер после некоторого простоя гасить монитор соответствующим сигналом по протоколу VESA в формате DPMS (Display Power Management Signalling).
Соответственно есть команды для консольного режима - setterm и графического — xset.
Управление режимами энергосбережения монитора по VESA DPMS из консольного режима
Управление режимами энергосбережения монитора через xset dpms из консольного режима:
setterm -blank 2 # Показать «чёрный экран» после двух минут простоя.
setterm -powersave on # Активировать перевод монитора в режим энергосбережения по VESA.
setterm -powerdown 1 # Выключить монитор по VESA через одну минуту после перехода в «чёрный экран».
Но для того чтобы данный функционал заработал, необходимо систему загрузить с поддержкой VESA, а для этого необходимо отредактировать файл /etc/default/grub
Исправив следующие параметры:
GRUB_CMDLINE_LINUX_DEFAULT="quiet vga=790 video=vesafb"
Параметр VGA выбирается согласно значений из документации к ядру
| 640x480 800x600 1024x768 1280x1024 ----+------------------------------------- 256 | 0x301 0x303 0x305 0x307 32k | 0x310 0x313 0x316 0x319 64k | 0x311 0x314 0x317 0x31A 16M | 0x312 0x315 0x318 0x31B
После редактирования необходимо будет обновить конфигурацию grub, запустив на выполнение команду update-grub
Но и теперь есть небольшая проблема: а что если в настоящий момент никто локально не авторизован на сервере (пользователи вышли или не входили с момента загрузки)? Чтобы на экране входа в систему получить энергосбережение, надо отредактировать файл /etc/kbd/config, так чтобы указанные ниже настройки получили соответствующее значение:
BLANK_TIME=1 BLANK_DPMS=powerdown POWERDOWN_TIME=0
Управление режимами энергосбережения монитора по DPMS из консольного режима
xset dpms force off -выключение монитора
xset dpms force on — включение монитора
