Отключить монитор с помощью командной строки

60

Я запускаю Ubuntu Server на своем ноутбуке. Там действительно нет причин для включения экрана. Я пытался использовать эту команду, чтобы выключить экран:

sleep 1 && xset dpms force off

Проблема в том, что я получаю следующую ошибку

unable to open display "".

Есть идеи, что происходит / что не так? Любые другие предложения о том, как это сделать?

Злые птицы
источник
У вас установлен X-сервер? И это работает?
энзотиб
@enzotib Я верю, что он установлен. Что касается его запуска, я не уверен. Как я могу проверить?
AngryBird
1
Попробуйте запустить это первым:export DISPLAY=:0.0
RobinJ
Не нулевой вывод из dpkg -l | grep xserver-xorgбыть установленным. Не нулевой выход из того, pgrep -fl Xчтобы быть запущенным. Кстати, если вы работаете, вы должны быть в графическом сеансе.
энзотиб
1
@ WarriorIng64: это ноутбук
энзотиб

Ответы:

59

Чтобы отключить монитор в консоли, введите следующую команду:

sudo vbetool dpms off

Чтобы восстановить контроль над консолью при нажатии клавиши Enter , я предлагаю

sudo sh -c 'vbetool dpms off; read ans; vbetool dpms on'
enzotib
источник
2
Вы, вероятно, затем захотите создать псевдоним для чего-нибудь удобного.
Дэнни Стейпл
1
vbetool доступен черезsudo apt-get install vbetool
Дэвид Кларк
1
В моем случае эта команда действительно выключила дисплей, а не xsetодну
golimar
Как ни странно, команда отключает 2 из 3 дисплеев, третий остается на некоторое время белым, пока машина не перезагрузится самостоятельно, если команда была выполнена через ssh.
Данба
@enzotib, я случайно нажал, чтобы понизить голос, извини. Пожалуйста, отредактируйте немного ответ, чтобы я мог удалить понижающий голос.
andras.tim
32

Попробуйте эти команды ...

Выключить:

xset -display :0.0 dpms force off 

Включить:

xset -display :0.0 dpms force on 

Если ваш дисплей выключается, а затем сразу включается, попробуйте следующее, что добавляет задержку в 1 секунду перед выключением экрана. Это дает возможность обрабатывать все события X-сервером перед выключением дисплея.

sleep 1 && xset -display :0.0 dpms force off 
Глаубер Кардосо
источник
Как узнать, какой экран какой
Карл Моррисон
1
Следующее сработало для меня (также частично вдохновлено ответом @ enzotib ):xset -display $DISPLAY dpms force off; read temp; xset -display $DISPLAY dpms force on
stiemannkj1
Будьте осторожны с этим. Я не могу снова включить монитор с помощью тестовой машины после выпускаforce off
Zmart
2
Обновление: снятие и повторное подключение всех кабелей (включая питание) на мониторе исправило ситуацию.
Zmart
28

Команда, xsetупомянутая в других ответах, отключит все мониторы, если у вас есть несколько мониторов. Однако, если вы хотите отключить только один или несколько мониторов, вы должны использовать xrandr.

Сначала запустите xrandr -qкоманду, которая выведет список всех мониторов и их текущие настройки дисплея. В начале каждой детали монитора вы найдете имя монитора, установленное системой. Вы должны следить за этим.

У меня есть два монитора (один подключен к порту DVI, а другой к порту VGA), и когда я запускаю команду, я вижу это:

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)

В этом выводе монитор, подключенный к порту DVI, помечен как, DFP1а другой - как CRT1. Поэтому, если я хочу отключить дополнительный монитор (т.е. CRT1), я запустил эту команду:

xrandr --output CRT1 --off

если вы хотите снова включить этот монитор, вы запустили эту команду:

xrandr --output CRT1 --auto
Харшит СП
источник
У меня есть 3 монитора, 1 VGA, 1 DVI и 1 HDMI. Когда я запустил: xrandr --output VGA1 --auto, он включил VGA, но клонировал монитор DVI.
ThiagoPonte
Хм странно. Попробуйте --on вместо --auto
Harshith JV
@ HarshithJ.V. это хороший ответ! Это лучше, чем xsetпотому, что xset включается, если вы просто нажимаете на сенсорную панель и т. Д. Кстати, надеюсь, вы помните меня из своей предыдущей компании :-)
Nishant
@Nishant Спасибо за комплименты. Странно, я тебя не помню. Пожалуйста, пингуйте меня в любой другой социальной сети, так как мы не можем общаться в чате, поскольку это противоречит правилам.
Харшит СП
Если вы получили ошибку crtc, наберите «chvt 7» перед командой xrandr, чтобы она читала «chvt 7 && xrandr -d: 0 --output eDP1 --auto»
haytham-med haytham
12

Я только что установил Ubuntu Server 18.04.1 (без графического интерфейса, X или чего-либо графического), и вчера вечером, сломав спину, пытаясь выключить экран, я наконец нашел волшебную команду:

setterm --blank 1

После выполнения команды экран будет автоматически отключаться каждую минуту (в режиме ожидания).


И что еще лучше, если вы хотите, чтобы команда выполнялась автоматически при загрузке, вы можете добавить ее в командную строку GRUB , для этого нам нужно отредактировать следующий файл:

sudo nano /etc/default/grub

Оказавшись там, просто добавить consoleblank=60к GRUB_CMDLINE_DEFAULT, это должно выглядеть следующим образом :

GRUB_CMDLINE_LINUX_DEFAULT="quiet consoleblank=60"

Затем закройте файл и сохраните его, после этого просто запустите sudo update-grubи вуаля , при каждой загрузке экран будет автоматически отключаться каждые 60 секунд. (опять же, в режиме ожидания).

И этот способ (добавление консоли в GRUB) работает даже с удаленных терминалов (ssh).

Наслаждайтесь! (очередной раз)

Мальчик Граффити
источник
1
Выполнив приведенную выше команду, я получаю: «setterm: терминал xterm-256color не поддерживает --blank». Что может быть не так?
zx485
1
Вы пытаетесь из удаленного сеанса?
Мальчик Граффити
@ zx485 Проверьте обновленный ответ, теперь вы можете отключить экран от удаленного сеанса. Я уверен, что это решит вашу проблему
Мальчик Граффити
6

Если у вас есть несколько мониторов, используйте это:

Выключение вашего второго монитора:
(Предполагая, что CRT-0 - это ваш левый монитор, а CRT-1 - ваш правый монитор)
xrandr --output CRT-1 --off
Включение вашего второго монитора:
xrandr --output CRT-1 --right-of CRT-0 --auto
Таким образом, xrandr знает, не дублировать первый экран.

Darksworm
источник
Я проверял это, отключение экрана таким образом больше похоже на его отключение, например, экран все еще включен. Его просто не использовали. --off«D экран не может быть снова включен с помощью кнопки питания экрана (потому что его еще на / никогда не был выключен). Это также перепуталось с настройками отображения моего рабочего стола (от расширенного рабочего стола до зеркального отображения). Если бы это было сделано для отключения обоих дисплеев, я не уверен, что было бы легко включить их снова, не войдя в TTY и не очистив файл monitors.xml, где бы он ни находился. Чем больше ты знаешь.
ThorSummoner
0

У меня была такая же проблема. Я обнаружил, что на моем ноутбуке (старый Acer Aspire) поддерживается кнопка переключения экрана по умолчанию. Это может быть что-то вроде fn+F6.

Это решение, вероятно, не сработало в тот день. Надеюсь, это поможет любому, кто столкнется с этой проблемой.

DutchJelly
источник