使用命令行关闭监视器

Ang*_*ird 94 server display monitor x11

我在我的笔记本电脑上运行 Ubuntu Server。屏幕真的没有理由打开。我一直在尝试使用此命令关闭屏幕:

sleep 1 && xset dpms force off
Run Code Online (Sandbox Code Playgroud)

问题是我收到以下错误

unable to open display "".
Run Code Online (Sandbox Code Playgroud)

知道发生了什么/出了什么问题吗?关于如何做到这一点的任何其他建议?

enz*_*tib 77

要在控制台中关闭监视器,命令如下:

sudo vbetool dpms off
Run Code Online (Sandbox Code Playgroud)

要在按下Enter键时重新控制控制台,我建议

sudo sh -c 'vbetool dpms off; read ans; vbetool dpms on'
Run Code Online (Sandbox Code Playgroud)

  • 然后,您可能希望将这批物品别名为方便的东西。 (3认同)
  • vbetool 可通过`sudo apt-get install vbetool` 获得 (3认同)
  • Ubuntu 20.04 LTS:`vbetool dpms off` 不起作用并显示`mmap /dev/zero: Operation not allowed`,然后是`无法初始化 LRMI(Linux 实模式接口)。`。以 root 身份在 X11 上尝试,以 root 身份通过 `ssh` 并以 root 身份在文本控制台上尝试。 (3认同)
  • 我确认此命令在 Ubuntu 服务器 20.04 @Tino 上不起作用 (3认同)

小智 48

试试这些命令...

把关掉:

xset -display :0.0 dpms force off 
Run Code Online (Sandbox Code Playgroud)

打开:

xset -display :0.0 dpms force on 
Run Code Online (Sandbox Code Playgroud)

如果您的显示器关闭然后立即重新打开,请尝试以下操作,这会在关闭屏幕之前增加 1 秒的延迟。这为 X 服务器在关闭显示之前处理所有事件提供了机会。

sleep 1 && xset -display :0.0 dpms force off 
Run Code Online (Sandbox Code Playgroud)

  • 更新:拔出并重新插入显示器上的所有电缆(包括电源)已解决了这种情况。 (3认同)

小智 37

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)
Run Code Online (Sandbox Code Playgroud)

在此输出中,连接到 DVI 端口的显示器标记为DFP1,另一个标记为CRT1。因此,如果我想关闭辅助监视器(即CRT1),我已运行此命令:

xrandr --output CRT1 --off
Run Code Online (Sandbox Code Playgroud)

如果你想再次打开那个显示器,那么你已经运行了这个命令:

xrandr --output CRT1 --auto
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的回答,我只想补充一点(如@ThiagoPonte 的情况)`xrandr --output DP-5 --auto --right-of CRT1` 允许在不克隆的情况下重新打开显示器(替换 * *--right-of ** 无论您的设置是什么) (2认同)

Axe*_*eAR 26

我刚刚安装了 Ubuntu Server 18.04.1(没有 GUI、X,也没有任何图形),在昨晚尝试关闭屏幕后,我终于找到了神奇的命令:

setterm --blank 1
Run Code Online (Sandbox Code Playgroud)

执行该命令后,屏幕将每分钟自动关闭(如果空闲)。


更好的是,如果您希望在启动时自动执行命令,您可以将其添加到GRUB 命令行,为此我们必须编辑下一个文件:

sudo nano /etc/default/grub
Run Code Online (Sandbox Code Playgroud)

在那里,只需添加consoleblank=60GRUB_CMDLINE_DEFAULT,它应该如下所示:

GRUB_CMDLINE_LINUX_DEFAULT="quiet consoleblank=60"
Run Code Online (Sandbox Code Playgroud)

然后关闭文件并保存,然后运行sudo update-grub,每次启动时屏幕将每 60 秒自动关闭一次。(再次,如果空闲)。

这种方式(将consoleblank添加到 GRUB)甚至可以从远程终端 (ssh) 工作。

享受!(再次)

  • 您是否在远程会话中尝试? (2认同)
  • 您可以通过“setterm -term linux -blank < /dev/tty1”远程执行此操作。命令“who”显示当前登录的 tty 用户。您还可以“关闭屏幕”,这样它就不会通过“setterm -blank force”对按键做出反应,并使用“setterm -blank poke”反转它。 (2认同)
  • 警告!传递给 `setterm --blank` 的值是分钟而不是秒。在决定阅读 TFM 之前,我一直在挠头。 (2认同)

小智 18

1 分钟后黑屏,2 分钟后关闭。任何按键都会将其重新打开。让它在重启后自动启动。

神奇的命令what将完成所有工作:

setterm --blank 1 --powerdown 2
Run Code Online (Sandbox Code Playgroud)

如果出现错误:setterm:terminal xterm-256color does not support --blank

  • 您可能正在通过 SSH 尝试此命令。您必须从计算机本地运行它,或者执行本指南的下一阶段。

让它自动启动

在可执行文件中插入命令。例如将其存储在主目录 /home/USER/.boot-scripts/screen-off.sh 的隐藏文件夹中

#!/bin/bash
setterm --blank 1 --powerdown 2
Run Code Online (Sandbox Code Playgroud)

并通过 systemctl 使脚本文件可执行。创建文件 /etc/systemd/system/screen-off.service

[Unit]
Description=Blank screen after 1 min and turn it off after 2 min. Any keypress will turn it back on.
After=ssh.service

[Service]
Type=oneshot
Environment=TERM=linux
StandardOutput=tty
TTYPath=/dev/console
ExecStart=/home/USER/.boot-scripts/screen-off.sh

[Install]
WantedBy=local.target
Run Code Online (Sandbox Code Playgroud)

使其可执行:

    sudo chmod +x /home/USER/.boot-scripts/screen-off.sh
    sudo chmod +x /etc/systemd/system/screen-off.service
Run Code Online (Sandbox Code Playgroud)

最后让它工作并在启动时启用:

sudo systemctl start screen-off.service
sudo systemctl enable screen-off.service
Run Code Online (Sandbox Code Playgroud)

要禁用它:

sudo systemctl disable screen-off.service
Run Code Online (Sandbox Code Playgroud)


小智 6

如果您有多个显示器,请使用:

关闭你的第二个显示器:(
假设 CRT-0 是你的左显示器,CRT-1 是你的右显示器)
xrandr --output CRT-1 --off
打开你的第二个显示器:
xrandr --output CRT-1 --right-of CRT-0 --auto
这样 xrandr 知道不会复制第一个屏幕。