Tắt màn hình bằng dòng lệnh


59

Tôi đang chạy Ubuntu Server trên máy tính xách tay của tôi. Thực sự không có lý do cho màn hình được bật. Tôi đã cố gắng sử dụng lệnh này để tắt màn hình:

sleep 1 && xset dpms force off

Vấn đề là tôi nhận được lỗi sau

unable to open display "".

Bất cứ ý tưởng những gì đang xảy ra / những gì là sai? Bất kỳ đề nghị khác cho làm thế nào để làm điều này?


Bạn đã cài đặt máy chủ X chưa? Và nó đang chạy?
enzotib

@enzotib Tôi tin rằng nó đã được cài đặt. Đối với nó chạy, tôi không chắc chắn. Làm thế nào tôi có thể kiểm tra?
AngryBird

1
Hãy thử chạy cái này trước:export DISPLAY=:0.0
RobinJ

Đầu ra không null từ dpkg -l | grep xserver-xorgđược cài đặt. Đầu ra không null từ pgrep -fl Xđể được chạy. Nhân tiện, nếu chạy bạn nên ở trong một phiên đồ họa.
enzotib

1
@ WarriorIng64: đó là một máy tính xách tay
enzotib

Câu trả lời:


59

Để tắt màn hình trong bàn điều khiển, lệnh như sau:

sudo vbetool dpms off

Để lấy lại quyền kiểm soát bàn điều khiển khi nhấn phím Enter , tôi đề nghị

sudo sh -c 'vbetool dpms off; read ans; vbetool dpms on'

2
Bạn có thể sau đó muốn bí danh rất nhiều để một cái gì đó tiện dụng.
Daniel Staple

1
vbetool có sẵn thông quasudo apt-get install vbetool
David Clarke

1
Trong trường hợp của tôi, lệnh này thực sự tắt màn hình và không phải là xsetmột
golimar

Thật kỳ lạ, lệnh tắt 2 trong 3 màn hình, lần thứ ba còn lại màu trắng trong một thời gian trước khi máy tự khởi động lại nếu lệnh được thực thi trên ssh.
danba

@enzotib, tôi vô tình bấm vào downvote, xin lỗi. Vui lòng chỉnh sửa một chút câu trả lời để tôi có thể loại bỏ downvote.
andras.tim

32

Hãy thử các lệnh này ...

Để tắt:

xset -display :0.0 dpms force off 

Bật:

xset -display :0.0 dpms force on 

Nếu màn hình của bạn tắt và sau đó bật lại ngay lập tức, hãy thử cách sau đây thêm độ trễ 1 giây trước khi tắt màn hình. Điều này tạo cơ hội cho tất cả các sự kiện được máy chủ X xử lý trước khi tắt màn hình.

sleep 1 && xset -display :0.0 dpms force off 

Làm thế nào để tôi biết màn hình nào là
Karl Morrison

1
Những điều sau đây làm việc cho tôi (cũng được lấy cảm hứng một phần từ câu trả lời của @ enzotib ):xset -display $DISPLAY dpms force off; read temp; xset -display $DISPLAY dpms force on
stiemannkj1

Hãy cẩn thận với điều này. Tôi không thể bật lại màn hình của mình bằng máy kiểm tra sau khi phát hànhforce off
Zmart

2
Cập nhật: Việc kéo ra và cắm lại tất cả các dây cáp (bao gồm cả nguồn điện) trên màn hình đã khắc phục tình trạng này.
Zmart

27

Các xsetlệnh đề cập trong câu trả lời khác sẽ tắt tất cả các màn hình nếu bạn có nhiều thiết lập màn hình. Tuy nhiên, nếu bạn muốn tắt chỉ một hoặc một số màn hình bạn nên sử dụng xrandr.

xrandr -qLệnh chạy đầu tiên , sẽ liệt kê tất cả các màn hình và cài đặt hiển thị hiện tại của nó. Khi bắt đầu mỗi chi tiết màn hình, bạn sẽ tìm thấy tên màn hình do hệ thống đặt. Bạn phải theo dõi điều đó.

Tôi có hai màn hình (một được kết nối với cổng DVI và một với cổng VGA) và khi tôi chạy lệnh tôi thấy điều này:

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)

Trong đầu ra này, màn hình kết nối cổng DVI được dán nhãn DFP1và một màn hình khác như CRT1. Vì vậy, nếu tôi muốn tắt màn hình phụ (tức là CRT1) , tôi đã chạy lệnh này:

xrandr --output CRT1 --off

nếu bạn muốn bật lại màn hình đó thì bạn đã chạy lệnh này:

xrandr --output CRT1 --auto

Tôi có 3 Màn hình, 1 VGA, 1 DVI và 1 HDMI. Khi tôi chạy: xrandr --output VGA1 --auto, nó bật VGA, nhưng nó đã nhân bản màn hình DVI.
ThiagoPonte

Hừm lạ. Hãy thử --on thay vì --auto
Harshith JV

@ HarshithJ.V. đây là một câu trả lời tốt Nó tốt hơn xsetvì xset bật nếu bạn chỉ cần nhấn touchpad, vv Btw hy vọng bạn nhớ tôi từ công ty trước của bạn :-)
Nishant

@Nishant Cảm ơn lời khen. Kỳ lạ là tôi không nhớ bạn. Vui lòng ping tôi trên bất kỳ phương tiện truyền thông xã hội nào khác vì chúng tôi không thể trò chuyện vì nó trái với quy tắc.
Harshith JV

Nếu bạn gặp lỗi crtc, hãy nhập "chvt 7" trước lệnh xrandr, để nó đọc "chvt 7 && xrandr -d: 0 --output eDP1 --auto"
haytham-med haytham

11

Tôi vừa cài đặt Ubuntu Server 18.04.1 (không có GUI, X, cũng không có đồ họa gì) và sau khi phá vỡ lưng tôi đêm qua để cố gắng tắt màn hình, cuối cùng tôi đã tìm thấy lệnh ma thuật:

setterm --blank 1

Sau khi thực hiện lệnh, màn hình sẽ tự động tắt mỗi phút (nếu không hoạt động).


Và thậm chí tốt hơn, nếu bạn muốn lệnh được thực thi tự động khi khởi động, bạn có thể thêm nó vào dòng lệnh GRUB , để làm như vậy, chúng ta phải chỉnh sửa tệp tiếp theo:

sudo nano /etc/default/grub

Khi đó, chỉ cần thêm consoleblank=60vào GRUB_CMDLINE_DEFAULT, nó sẽ trông như thế này:

GRUB_CMDLINE_LINUX_DEFAULT="quiet consoleblank=60"

Sau đó đóng tệp và lưu tệp, sau đó chỉ cần chạy sudo update-grubvoila , mỗi khi bạn khởi động màn hình sẽ tự động tắt sau mỗi 60 giây. (một lần nữa, nếu nhàn rỗi).

Và theo cách này (thêm consoleblank vào GRUB) hoạt động ngay cả từ các thiết bị đầu cuối từ xa (ssh).

Thưởng thức! (lần nữa)


1
Thực hiện lệnh trên tôi nhận được: "setterm: terminal xterm-256color không hỗ trợ --blank". Điều gì có thể sai?
zx485

1
Bạn đang cố gắng từ một phiên từ xa?
Cậu bé Graffity

@ zx485 Kiểm tra câu trả lời được cập nhật, bây giờ bạn có thể tắt màn hình từ một phiên từ xa. Tôi chắc chắn rằng điều này sẽ giải quyết vấn đề của bạn
Boy Graffity

6

Nếu bạn có nhiều màn hình, hãy sử dụng:

Tắt màn hình thứ hai của bạn:
(Giả sử CRT-0 là màn hình bên trái của bạn và CRT-1 là màn hình bên phải của bạn)
xrandr --output CRT-1 --off
Bật màn hình thứ hai của bạn:
xrandr --output CRT-1 --right-of CRT-0 --auto
Cách này xrandr biết không sao chép màn hình đầu tiên.


Tôi đã thử nghiệm điều này, tắt một màn hình theo cách này giống như vô hiệu hóa nó, ví dụ, màn hình vẫn được bật. Nó chỉ không được sử dụng. Các --off'd màn hình không thể bật trở lại với nút nguồn của màn hình (vì nó vẫn bật / không bao giờ tắt). Nó cũng bị rối với các cài đặt hiển thị trên màn hình của tôi, (từ màn hình mở rộng đến màn hình được nhân đôi). Nếu điều này được thực hiện để tắt cả hai màn hình, tôi không chắc có thể dễ dàng bật lại mà không cần đăng nhập vào TTY và xóa tệp Monitor.xml ở bất cứ đâu. Bạn càng biết nhiều.
ThorSummoner

0

Tôi đã có cùng một vấn đề. Những gì tôi phát hiện ra là trên máy tính xách tay của tôi (một máy hút acer cũ), nút screentoggle mặc định được hỗ trợ. Đây có thể là một cái gì đó như fn+F6.

Giải pháp này có thể đã không hoạt động trở lại trong ngày. Tôi hy vọng nó sẽ giúp bất cứ ai gặp phải vấn đề này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.