Jak na stałe wyłączyć wygaszacz ekranu konsoli Linux w całym systemie?

42

Mam serwer Ubuntu, który uruchamia się w trybie tekstowym. Rzadko ma on dołączony ekran lub klawiaturę, ale kiedy dołączam ekran, zwykle muszę również podłączyć klawiaturę, ponieważ wygaszacz ekranu w trybie cholernej konsoli będzie włączony i będę musiał nacisnąć klawisz, aby zobaczyć, co jest dziać się.

Wiem, że polecenie setterm może to wyłączyć, ale jest to sprawa na sesję. Jak mogę to zrobić, aby urządzenie nigdy nie wyłączało ekranu w trybie tekstowym, nawet gdy jest uruchamiane po raz pierwszy i siedzi po znaku zachęty do zalogowania?

raldi
źródło
Wydaje się, że odpowiedź na ładną odpowiedź jest zadana na askubuntu: askubuntu.com/questions/138918/…
Roy
Napisałem o dwóch różnych podejściach, których potrzebowałem do różnych dystrybucji RHEL. Jeden z nich może pomóc Ci w Ubuntu: superuser.com/a/1004931/197972
David C.

Odpowiedzi:

23

W Ubuntu 12.10 i wcześniejszych pakiet narzędzi konsolowych pozwala kontrolować opcje konsoli.

Aby wyłączyć wygaszanie ekranu i wyłączenie Pozostawie-, zestaw BLANK_TIMEi POWERDOWN_TIMEdo 0w /etc/console-tools/config. Jeśli nie chcesz modyfikować pliku konfiguracyjnego, ten sam efekt można osiągnąć, tworząc nowy plik /etc/console-tools/config.dzawierający:

BLANK_TIME=0
POWERDOWN_TIME=0

Nazwa pliku w config.d musi składać się wyłącznie z wielkich i małych liter, cyfr, znaków podkreślenia i łączników.

Phil Ross
źródło
Skąd to wiesz? Szperałem w Internecie przez cały ranek, szukając dokumentacji dla / etc / console-tools i nie znalazłem żadnej.
raldi
10
Słowo ostrzeżenia z tym: zainstalowałem narzędzia konsoli na serwerze Ubuntu 12.04, wykonałem powyższą konfigurację i całkowicie ją zatankowałem ... Nie jestem pewien, co zrobiłem źle, ale jeśli zdarzy się to komukolwiek innemu (a ty bzdury na serwerach jak ja!), uruchom do odzyskiwania -> monit root -> zamontuj -o ponownie, rw / -> apt-get usuń narzędzia konsoli -> uruchom ponownie
BaronVonKaneHoffen
To nie istnieje na Ubuntu 18.04 :( - jakieś alternatywy?
Roman Gaufman
17

Lub używasz / etc / kbd / config do konfiguracji (zależy od systemu, co jest zainstalowane)

BLANK_TIME=0
BLANK_DPMS=off
Thomas Creutz
źródło
Co zrestartować po zmianie konfiguracji KBD?
Frodik
1
Wygląda na to, że /etc/init.d/kbd reload
Vincent
2
Próbowałem tego w nowej instalacji Ubuntu Server 10.04.4 i 12.04.1 i nie działało to w żadnym z nich.
Prof. Moriarty
Do jakich dystrybucji to dotyczy?
Michael Hampton
Działa to na Debianie 6 i 7. Ten plik konfiguracyjny ustawia BLANK_TIME=30się domyślnie.
podstawowe6
15

Parametr jest kontrolowany za pomocą wiersza polecenia jądra, przy użyciu setterm jedynie zmienia ustawienia środowiska wykonawczego. Aby go wyłączyć w całym systemie, możesz zmienić wiersz komend rozruchu jądra, dodając do niego opcję „consoleblank = 0” w konfiguracji rozruchu (grub / lilo).

Jeśli coś podczas ustawiania rozruchu to nadpisuje wartość.

Matthew Ife
źródło
3
Jak widać na superuser.com/questions/152347/… !
headhead
Za pomocą grub2 można go dodać w / etc / default / grub, GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"a następnie zaktualizować konfigurację grub za pomocą grub[2]-mkconfig -o /boot/grub/grub.cfg. Lub może być osadzony we wbudowanym wierszu poleceń jądra podczas ręcznej konfiguracji i kompilacji jądra.
user3132194
7

Dodanie settermpolecenia spowoduje /etc/rc.local, że zadziała ono dla wszystkich konsol wirtualnych, niezależnie od tego, czy użytkownik jest zalogowany. Na przykład:

setterm -blank 0
James Sneeringer
źródło
Wydaje się, że tak naprawdę nie działa w rc.local.
raldi
W przeszłości działało to na systemach typu RedHat. Może być tak, że Debian / Ubuntu ładuje się rc.localw nieco innym czasie niż RH. Przepraszam za to.
James Sneeringer
Nie działa w CentOS 6.3. Ekran nadal gaśnie po 10 minutach.
Michael Hampton
1
Stwierdziłem, że zadziałało to dla RHEL 5 i 6 ( /bin/setterm -blank 0 -powerdown 0 -powersave off), ale nie dla 7. Sukces lub porażka prawdopodobnie zależy od twojej dystrybucji i środowiska konsoli w czasie wykonywania rc.local.
David C.
Dostaję to <~ $ sudo setterm -blank 0 setterm: terminal xterm-256color nie obsługuje --blank
Roman Gaufman
4

Jeśli używasz nowszej wersji Ubuntu, która korzysta z wersji upstart, możesz użyć:

for file in /etc/init/tty*.conf; do tty="/dev/`basename $file .conf`"; echo "post-start exec setterm -blank 0 -powersave off >$tty <$tty" | sudo tee -a "$file"; done

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:

for file in /etc/init/tty*.conf;

Upstart nazwa pliku konfiguracyjnego tty w pliku $ służy do zbudowania nazwy urządzenia tty:

tty="/dev/`basename $file .conf`";

Zbudowano polecenie „po uruchomieniu” upstart, które uruchamia „setterm”, aby wyłączyć wygaszanie ekranu i oszczędzanie energii po uruchomieniu tty:

echo "post-start exec setterm -blank 0 -powersave off >$tty <$tty"

I na koniec to polecenie jest dołączane do pliku konfiguracyjnego upstart:

| sudo tee -a "$file";
Chris Pick
źródło
Twoja odpowiedź byłaby o wiele lepsza, gdybyś rzeczywiście opisał, co się tutaj dzieje. Samo wydawanie ogromnych poleceń bez żadnego wyjaśnienia nie jest bardzo przydatne.
Zoredache
@Zoredache masz rację, dodałem wyjaśnienie. Dzięki za opinie.
Chris Pick
2
daxroc
źródło