Jak zmienić zachowanie wygaszania ekranu w terminalach wirtualnych systemu Linux?
Na przykład, jeśli przełączę się na VT z X, zaloguj się i pozostaw system w spokoju przez około 5 minut, ekran zgaśnie jak wygaszacz ekranu. Wraca z każdym naciśnięciem klawisza, np. Wygaszaczem ekranu.
Przede wszystkim chcę tylko zmienić limit czasu, ale interesują mnie również inne ustawienia.
Jeśli to pomoże, w jednym z moich systemów jest Ubuntu 10.04 ze standardowymi sterownikami grafiki. fbset
pokazuje konsolę za pomocą radeondrmfb
urządzenia bufora ramki.
linux
console
screensaver
framebuffer
virtual-terminal
quack quixote
źródło
źródło
Odpowiedzi:
setterm
odpowiedź @ whitequark jest rozsądnym narzędziem przestrzeni użytkownika, ale to nie jest cała historia.Domyślne zachowanie wygaszania konsoli jest wstawiane do jądra w czasie kompilacji. Można go skonfigurować w czasie rozruchu za pomocą parametru Consoleblank = lub w przestrzeni użytkownika za pomocą
setterm
. Z dokumentacji jądra ( kernel-parameters.txt ):Oto opcje, ich ustawienia domyślne w moim systemie Ubuntu i ich strefy wpływów:
setterm -blank [0-60]
; zawsze zgłasza 0 w przypadku zapytania; skuteczny, gdy działa na prawdziwym VT; wpływa na wszystkie prawdziwe TTY; nie działa, gdy działa w sesjach ekranowych na VT.setterm -powerdown [0-60]
; zawsze zgłasza „3]” (??); nie wydaje się mieć żadnego efektu. Jądra Ubuntu nie włączają APM_DISPLAY_BLANK i może to być powiązane.consoleblank=N
; domyślnie 600 (10 minut); wpływa na wszystkie prawdziwe VT; wpływa na sesje ekranowe w VT; nie ma możliwości ustawienia podczas działania.Tak więc moje opcje zmiany wartości domyślnej są następujące:
setterm -blank X
(X w minutach, 0, aby wyłączyć) do pliku inicjującego powłokę, takiego jak .bashrc .setterm -blank X
do /etc/rc.local .consoleblank=Y
(Y w sekundach, 0, aby wyłączyć) do wiersza poleceń jądra, dodając go do list parametrów w / etc / default / grub , GRUB_CMDLINE_LINUX lub GRUB_CMDLINE_LINUX_DEFAULT . (Nie zapomnijupdate-grub
.)źródło
setterm -blank X
nie działało to dla mnie z poziomu tmux , ale działało idealnie, kiedy opuściłem tmux przed uruchomieniem polecenia.GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"
a następnie zaktualizować konfigurację grub za pomocągrub[2]-mkconfig -o /boot/grub/grub.cfg
.3]
bosetterm -powerdown
to tylko połowa prawdy:setterm -powerdown 3 | hexdump -c
zwraca033 [ 1 4 ; 3 ]
. Nie wiem, co powinno interpretować tę sekwencję ucieczki ...Spróbuj
setterm -blank $minutes
(lub podaj 0, aby wyłączyć);-powersave
opcja może być również powiązana.setterm
ma również wiele innych przydatnych opcji.Jeśli chcesz ustawić te atrybuty podczas uruchamiania systemu, rozważ napisanie initscript. To tylko skrypt umieszczony w
/etc/init.d
katalogu. Niech to się nazywasetterm
:Następnie uczyń go wykonywalnym:
Na koniec utwórz dowiązania symboliczne /etc/rcX.d (sposób Debiana):
(Jeśli znudzi ci się takie zachowanie, rób
# update-rc.d -f setterm remove
. Zauważ, że to-f
musi być pierwszy argument).źródło
-powerdown
ustawienie, które obowiązuje. co z ustawieniem domyślnego systemu podczas uruchamiania? jest uruchomionysetterm -blank X
lubsetterm -powerdown Y
w /etc/rc.local (lub ~ / .bashrc ) jest uzasadniony?rc.local
faktycznie działa. (Ostatniaupstart
migracja spieprzyła niektóre rzeczy, ponieważ najwyraźniej istnieje i działa w moim systemie.) W przeciwnym razie powinieneś utworzyć skrypt startowy. To proste: w naszym przypadku musi on zainicjować wszystko, gdy zostanie przekazanystart
jako pierwszy argument, i nie robić nic innego. Opiszę to w mojej odpowiedzi.setterm -blank X >/dev/ttyN
wydaje się nie działać, więc nie sądzę, aby koncepcja initscript działała. natknąłem się na parametr boottime tho i przeprowadziłem dalsze badania. wydaje mi się, że mylę się co-powerdown
do-powersave
; nie zostały w pełni przetestowane, ale te nie działają w moim systemie.setterm -blank X
działa tylko z prawdziwego VT i wpływa na wszystkie VT, więc uruchomienie raz przez /etc/rc.local jest rozsądne. (Upstart nie zabiera rc.local , tylko rzeczy /etc/rcX.d .)setterm
emituje sekwencje specjalnestdout
, ale sprawdza typ TTY za pomocąstdin
: Właśnie sprawdziłem isetterm ... >/dev/ttyN </dev/ttyN
działa zgodnie z przeznaczeniem.Jeśli ktoś szuka innego możliwego rozwiązania dla Debiana (prawdopodobnie nie Ubuntu):
W
/etc/kbd/config
poszukaj ustawienia o nazwie „BLANK_TIME”:Zmień na 0, spowoduje to wyłączenie:
Testowane na Debianie 6 i 7.
źródło
Jeśli używasz nowszej wersji Ubuntu, która korzysta z wersji upstart, możesz użyć:
Małe wyjaśnienie tego, co się tutaj dzieje:
Nowsze wersje Ubuntu używają upstart do uruchamiania systemu. Przy starcie konsole Linuksa są instalowane z plikami konfiguracyjnymi przechowywanymi w / etc / init. Powyższe polecenie rozpoczyna się od iteracji każdego z tych plików konfiguracyjnych:
Upstart nazwa pliku konfiguracyjnego tty w pliku $ służy do zbudowania nazwy urządzenia tty:
Zbudowano polecenie „po uruchomieniu” upstart, które uruchamia „setterm”, aby wyłączyć wygaszanie ekranu i oszczędzanie energii po uruchomieniu tty:
I na koniec to polecenie jest dołączane do pliku konfiguracyjnego upstart:
źródło
W moich systemach (różne wersje RedHat Enterprise Linux) stwierdziłem, że potrzebne są różne podejścia.
W moich systemach RHEL 5 i 6 mogę dodać linię
/bin/setterm -blank 0 -powerdown 0 -powersave off
do
/etc/rc.local
. Wyłącza to wygaszanie ekranu konsoli podczas uruchamiania systemu.Odkryłem, że to nie działa w systemach RHEL 7. Na RHEL7 uruchomienie setterm z rc.local powoduje wygenerowanie błędu:
setterm: $TERM is not defined.
Polecenie działa z interaktywnej powłoki, w której zdefiniowano $ TERM (as
linux
). Jeśli wymuszę użycie setterm:/bin/setterm -term linux -blank 0 -powerdown 0 -powersave off
Potem pojawia się inny błąd:
setterm: cannot (un)set powersave mode: Inappropriate ioctl for device
Mimo że to samo polecenie działa poprawnie z sesji interaktywnej. Ustawienie
consoleblank
parametru jądra działało.Na RHEL7 dokonaj edycji
/etc/default/grub
i dołączconsoleblank=0
doGRUB_CMDLINE_LINUX
parametru. Następnie uruchomgrub2-mkconfig -o /boot/grub2/grub.cfg
i uruchom ponownie.Nie próbowałem ustawienia
consoleblank
na RHEL5 lub 6.źródło
</dev/tty1 >/dev/tty1
lub coś, co sprawi, że zadziałaPrywatne sekwencje CSI konsoli Linux
Aby ustawić
sleep mode/screensaver
czas wejścia (gdzie X jest czasem w minutach; 0 = nigdy):(z konsoli szeregowej)
lub (z konsoli bufora ramki)
lub, aby ustawić przy każdym uruchomieniu, użyj
/etc/inittab
:referencje:
źródło
Dodanie
gnome-screensaver-command --exit
do mojego.profile
pliku naprawiło ten problem dla mnie na Debianie Linux (Wheezy).Pomyślałem, że dodam to, aby pomóc innym, którzy wyciągają włosy, próbując zatrzymać wygaszanie ekranu.
Pole wyboru zatytułowane „Przyciemnij ekran w celu oszczędzania energii” działa nieprawidłowo. Nawet niezaznaczone, JESZCZE opróżnia ekran zgodnie z wybranym czasem braku aktywności.
AKTUALIZACJA: Właściwie potrzebowałem,
sleep 30 && /usr/bin/gnome-screensaver-command --exit &
aby działał poprawnie. Wygaszacz ekranu GNOME wydaje się uruchamiać długo po przetworzeniu pliku .profile.źródło