Wyłącz wygaszanie ekranu w konsoli tekstowej


75

Korzystam z klastrów linuksowych, głównie na SLES10. Serwery są głównie serwerami typu blade, do których dostęp uzyskuje się za pośrednictwem zdalnej konsoli. W serwerowni znajduje się prawdziwa konsola, ale wyłączona.

Chciałbym wyłączyć wygaszanie ekranu, ponieważ nie służy ono żadnemu celowi i jest uciążliwe. Musisz nacisnąć klawisz, aby sprawdzić, czy jesteś połączony, co jest bólem. Pracujemy na poziomie 3, więc konsola jest w trybie tekstowym, nie dotyczy X11.


SLES10 używa SysV init. Wiele dystrybucji korzysta z systemd, oto możliwe rozwiązanie dla Arch . Systemy Debian 6 i 7 domyślnie używają kbd, kliknij tutaj .
podstawowe6

W przypadku Debiana zobacz unix.stackexchange.com/questions/238846 .
JdeBP,

Odpowiedzi:


85

Możesz sprawdzić, ile czasu jądro wykorzystuje do wygaszania konsoli wirtualnej poprzez:

$ cat /sys/module/kernel/parameters/consoleblank
600

Ten plik jest tylko do odczytu, a limit czasu jest określony w sekundach. Obecna wartość domyślna to 10 minut.

Możesz zmienić tę wartość, wprowadzając następujące polecenie na wirtualnej konsoli (jeśli jesteś w Xtermie, musisz przejść na wirtualną konsolę, naciskając np. Ctrl+ Alt+ F1).

$ setterm -blank VALUE

Gdzie nowa WARTOŚĆ jest podana w minutach . Wartość 0 wyłącza wygaszanie:

$ cat /sys/module/kernel/parameters/consoleblank
600
$ setterm -blank 0
$ cat /sys/module/kernel/parameters/consoleblank
0

setterm ma inne opcje związane z oszczędzaniem energii, najbardziej użyteczną kombinacją wydaje się być:

$ setterm -blank 0 -powersave off

Aby więc trwale / automatycznie wyłączyć wygaszanie konsoli wirtualnej podczas uruchamiania, możesz:

  1. dodaj consoleblank=0do parametrów jądra (edytuj konfigurację gruba)
  2. dodaj setterm -blank 0polecenie do rc-localrównoważnego skryptu startowego
  3. dodaj dane settermwyjściowe do, /etc/issueponieważ /etc/issuedane wyjściowe są wyświetlane na każdej konsoli wirtualnej:

    # setterm -blank 0 >> /etc/issue

Wybierz jedną z powyższych opcji.


2
PS: W systemie Ubuntu 11.10 (Thinkpad X200) zauważyłem błąd, w którym wygaszanie konsoli przez jądro zakłóca działającą sesję X11. Oznacza to, że dokładnie 10 minut po ostatnim naciśnięciu klawisza X11 pojawiają się puste pola i trzeba jechać na wirtualnej konsoli, aby odzyskać ekran X11 (bardzo denerwujące podczas np. Odtwarzania wideo). Jest to niezależne od ustawień związanych z DPMS / wygaszaczem ekranu w X11 (pomyśl xsetitp.). Dlatego wyłączenie wirtualnych wygaszaczy konsoli, jak opisano powyżej, jest szybkim obejściem dla systemów, których dotyczy problem.
maxschlepzig

hmmm. Z jakiegoś powodu nie widzę /sys/module/kernel/parameters/consoleblankna moim serwerze CentOS 5.x. Czy można ustawić inną nazwę?
Mike B

1
Na RHEL 5 i 6, stwierdziliśmy, że wprowadzenie /bin/setterm -blank 0 -powerdown 0 -powersave offw /etc/rc.localbędzie działać świetnie. Na RHEL 7 jednak by się nie udało. Dodawanie consoleblank=0parametrów jądra te działa na tej platformie.
David C.

7
Pamiętaj, że tak naprawdę nie musisz działać settermw wirtualnej konsoli. Możesz również przekierować go na to: setterm -blank 0 > /dev/tty1działa dobrze. Możesz też użyć setterm -blank < /dev/tty1do zapytania o bieżącą wartość z tty1 lub setterm -blank force < /dev/tty1do wymuszenia wygaszania.
Alexander Amelkin,

@AlexanderAmelkin - przekierowania do / z / dev / tty1 nie działają w RHEL 7. Jakiej dystrybucji użyłeś do tego? / dev / tty1 jest wprawdzie konsolą lokalną, ale ani ta, ani / dev / console nie wydają się nic robić.
Paul

15

Spróbuj użyć tego:

setterm -blank

1
@markus_b: Dodaj więc to polecenie do skryptu inicjującego (coś takiego jak /etc/init/markus-console.confjeśli używasz Upstart lub /etc/init.d/markus-console.shplus dowiązań symbolicznych /etc/rd?.ddla SysVinit, nie znam rzeczywistych lokalizacji SuSE).
Gilles,

2
@mattdm, nieprawda - systemdzwykle jest dostarczana z rc-localusługą kompatybilności - lub możesz łatwo dodać niestandardowe usługi ...
maxschlepzig 18.02.

3
@mattdm Dlaczego nie byłbyś w stanie napisać jednostki, która uruchomi to polecenie?
Kyrias

1
WSKAZÓWKA: Najpierw wyjdź z Tmux , inaczej to nie zadziała.
Cody Hess,


14

Według: https://wiki.archlinux.org/index.php/Display_Power_Management_Signaling#DPMS_Interaction_in_a_console_with_setterm

Zapobiegaj wyłączaniu się ekranu (w konsoli)

$ setterm -blank 0 -powerdown 0

Alternatywnie można trwale wyłączyć wygaszanie konsoli za pomocą następującego polecenia:

# echo -ne "\033[9;0]" >> /etc/issue


3
drugie rozwiązanie działa jak urok w Marvell ARM Debian. Wszystkie inne rozwiązania nic nie robią.
Alexey Sviridov

13

Wdrożyłem i przetestowałem następującą konfigurację, która w tej chwili działa dobrze na sles10, moim koniu roboczym.

W

/etc/init.d/boot.local

Dodaj

setterm -blank

wygląda na to, że to wystarczy. Dzięki za Uku Loskit i Gilles za pchnięcie we właściwym kierunku.


1
Zmodyfikowałem twoją odpowiedź bezlitośnie, więc nie wahaj się cofnąć, jeśli ci się nie podoba. Proszę również zaakceptować odpowiedź, ponieważ jest to rzeczywiste rozwiązanie. Nie powinieneś akceptować odpowiedzi tylko dlatego, że jesteś wdzięczny, że doprowadziła cię do faktycznej odpowiedzi, jeśli faktycznie jest lepsza odpowiedź.
tshepang

Przepraszamy, bardziej podoba się wersja oryginalna.
markus_b

Musiałem dodać najczęściej głosowane odpowiedzi - oszczędzam, ponieważ ipmi na mojej płycie systemowej jest głupie, jeśli nie ma obu tych części. niestety, nie zachowuje ustawień między zastosowaniami, a kiedy te funkcje kopią okno, wyskakuje na pierwszy plan i zaczyna cyklicznie przewijać okno przez około 4 różne rozmiary raz na sekundę lub 2, przez co prawie niemożliwe jest złapanie okna i ręczna zmiana jego rozmiaru / wykop ten termin z oszczędzania energii :(
Kendrick

13

Jedynym trwałym rozwiązaniem jest dodanie consoleblank=0do wiersza poleceń jądra. Możesz zobaczyć wartość (która domyślnie wynosi 600 sekund) w:

/sys/module/kernel/parameters/consoleblank

(zwróć uwagę, że plik jest tylko do odczytu). Jedynym sposobem na zmianę wartości Consoleblank jest ponowne uruchomienie z nową opcją wiersza poleceń jądra.


3
Ostatnie zdanie jest niepoprawne - nie trzeba restartować komputera, aby zmienić wartość consoleblank. Zobacz moją odpowiedź.
maxschlepzig

Nie znalazłem setterm -blank działającego niezawodnie. Czasami wydaje się, że resetuje się po wylogowaniu lub przełączeniu na inne wirtualne terminale.
amcnabb,

Aby dodać to stałe ustawienie za pomocą grub, edytuj /boot/grub/grub.conf i dodaj Consoleblank = 0 do linii zaczynających się od „kernel / boot / vmlinuz ...”. Następnie uruchom ponownie.
Hoylen

1
„tylko” wydaje się tutaj ciągiem słów…
notlesh 15.01.16

5

Jeśli chcesz tylko zapobiec wygaszaniu ekranu po zalogowaniu użytkownika, wystarczy dołączyć setterm -powersave off -blank 0do $HOME/.bash_profileodpowiednich użytkowników.


5

Naprawdę byłam zaskoczona tym problemem. Wszystkie powyższe sztuczki z użyciem setterm i przekierowania z / do / dev / tty0 nie działały z mojego ssh.

Potem zdałem sobie sprawę, jak to wyłączyć:

TERM=linux setterm -blank 0 -powerdown 0  -powersave off >/dev/tty0 </dev/tty0

TERM = linux zastępuje domyślny TERM (który jest xterm-256color na moim komputerze) i pomaga settermowi zapytać o właściwe parametry z tty0.

Możesz sprawdzić wynik według

cat /sys/module/kernel/parameters/consoleblank

Powinien wynosić 0. Jeśli jest 600, sztuczka się nie powiodła.


3

/usr/bin/setterm -powerdown 0 może również pomóc

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.