Jak wyłączyć ekran (Linux bez X)

15

Chciałbym wiedzieć, czy jest jakiś sposób na wyłączenie ekranu w dystrybucji Linuksa, której używam w Debianie. Znalazłem kilka sposobów na zrobienie tego z zainstalowanym X, ale nie bez X.

mnml
źródło
Jeśli nie masz zainstalowanego Xservera, co dokładnie chcesz wyłączyć? Czy możesz wyjaśnić, czego jeszcze chcesz?
Telemachus
1
O czym dokładnie mówisz? proszę wyjaśnić
hasen
@Mnml: w komentarzu poniżej wspominasz o laptopie i wyłączeniu ekranu. Nie jestem pewien, czy chcesz stworzyć bezobsługowy serwer na laptopie. To wydaje mi się dość sprzeczne z intuicją.
Telemachus
2
@Telemachus: Używam starego tabletu jako małego „domowego” serwera, jest wystarczająco szybki dla usług, na których działam (Dovecot itp.) I nie zużywa dużo prądu ... Byłoby jeszcze lepiej bez ekranu ;-)
mnml

Odpowiedzi:

14

Możesz wyłączyć ekran na laptopie za pomocą polecenia xset :

xset dpms force off

DPMS to Display Display Management Management Signaling, standard zmniejszający zużycie energii przez monitory. xset jest oczywiście narzędziem X. Jeśli chcesz to zrobić bez udziału X, użyj setterm :

setterm -powerdown 1

Pełna lista opcji do manipulowania ekranem:

xset -dpms          # Disable DPMS
xset +dpms          # Enable DPMS
xset s off          # Disable screen blanking
xset s 150          # Blank the screen after 150 seconds
xset dpms 300 600 900       # Set standby, suspend, & off times (in seconds)
xset dpms force standby     # Immediately go into standby mode
xset dpms force suspend     # Immediately go into suspend mode
xset dpms force off     # Immediately turn off the monitor
xset -q             # Query current settings

setterm -blank 10           # Blank the screen in 10 minutes
setterm -powersave on       # Put the monitor into VESA power saving mode
setterm -powerdown 20       # Set the VESA powerdown to 20 minutes

Wszystko to zostało należycie wyjaśnione w Mini-HOWTO z zasilaniem bateryjnym .


źródło
1
xset wymaga niestety Xserver Program 'xset' nie jest obecnie zainstalowany. Możesz go zainstalować, pisząc: apt-get install x11-xserver-utils
mnml
1
Z setterm -powersave on, rozumiemcannot (un)set powersave mode
IanVaughan
6

Sprawdź vbetool . Możesz wyłączyć ekran za pomocą:

vbetool dpms off

Jedyny problem, jaki mam z tym, to to, że ekran nie włącza się ponownie automatycznie, np. Po wprowadzeniu z klawiatury. Musisz to zrobić ręcznie, wpisując go na ślepo lub przez SSH:

vbetool dpms on

W Debian Squeeze vbetool jest używany w /etc/acpi/lid.sh, gdy X nie jest dostępny.

Stian Ellingsen
źródło
2
można napisać mały skrypt, który pustkuje ekran, czeka na dane wejściowe, a następnie włącza je ponownie. Coś jak vbetool dpms off && read -s -n 1 && vbetool dpms on.
Bobby
Używam serwera Ubuntu i to jest jedyny sposób, w jaki udało mi się wyłączyć wyświetlanie bez X. Dziękuję Ci!
user180574,
1

Nie jestem pewien, który pakiet to zapewnia, ale niektóre pakiety związane z ACPI zawierają skrypty do wygaszania ekranu w zależności od tego, czy pokrywa laptopa jest otwarta. Chociaż teraz, kiedy patrzę na sam skrypt ( /etc/acpi/lid.sh), wydaje się, że działa on tylko na X. Chodzi jednak o to, że zapewnia on ramy do uruchamiania akcji na zdarzeniach otwierania / zamykania pokrywy. Możesz zmodyfikować skrypt, aby używał setterm, i może zrobić to, co chcesz.

Ryan C. Thompson
źródło
1

W Kali GNU / Linux Rolling 64-bit sprawdź, czy xset -qpokazuje się tak:

DPMS (Energy Star):
Standby: 600 Suspend: 600 Off: 600

Ustawienie dla nich wszystkich na 0 działa dla mnie. Zrób to za pomocą tego wiersza poleceń:

xset dpms 0 0 0
05M4R
źródło
0

Jeśli masz port szeregowy na swoim komputerze, możesz uruchomić go bez głowy.

Wyszukaj w sieci „Howto dla konsoli szeregowej Linux”.

Joe
źródło
0

W odpowiedzi na twoje pytanie

setterm -blank 0

powinien to zrobić. Pamiętaj, że należy to zrobić przy każdym logowaniu.

weasel5i2
źródło
0

Jeśli przypadkowo chcesz zdalnie wyłączyć wyświetlacz, np. Na laptopie, gdy zalogujesz się przez SSH ...

DISPLAY=":0" xset dpms force off

Jeśli nie określisz DISPLAYzmiennej, xset nie powiedzie się z:

xset: unable to open display ""
sanmai
źródło