我在笔记本电脑上运行 Ubuntu Server。屏幕确实没有理由亮着。我一直尝试使用此命令关闭屏幕:
sleep 1 && xset dpms force off
问题是我收到以下错误
unable to open display "".
知道发生了什么事/出了什么问题吗?还有其他建议吗?
答案1
要在控制台中关闭监视器,命令如下:
sudo vbetool dpms off
要重新获得对控制台的控制权,请按进入关键,我建议
sudo sh -c 'vbetool dpms off; read ans; vbetool dpms on'
答案2
尝试这些命令...
把关掉:
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
答案3
如果您设置了多个显示器,其他答案中提到的命令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
答案4
1 分钟后屏幕变黑,2 分钟后关闭。按任意键均可将其重新打开。重启后自动启动。
神奇的命令将完成所有的工作:
setterm --blank 1 --powerdown 2
如果出现错误:setterm: 终端 xterm-256color 不支持 --blank
- 您可能正在通过 SSH 尝试此命令。您必须从计算机本地运行它,或者执行本指南的下一阶段。
使其自动启动
在可执行文件中插入命令。例如,将其存储在主目录的隐藏文件夹中 /home/USER/.boot-scripts/screen-off.sh
#!/bin/bash
setterm --blank 1 --powerdown 2
并通过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
使其可执行:
sudo chmod +x /home/USER/.boot-scripts/screen-off.sh
sudo chmod +x /etc/systemd/system/screen-off.service
最后让它在启动时运行并启用:
sudo systemctl start screen-off.service
sudo systemctl enable screen-off.service
要禁用它:
sudo systemctl disable screen-off.service