Вимкнення прогону екрана на текстовій консолі


75

Я використовую кластери Linux, в основному на SLES10. Сервери - це переважно леза, доступ до яких здійснюється через віддалену консоль. У серверній кімнаті є справжня консоль, але вимкнена.

Я хотів би вимкнути заготовку екрана, оскільки це не виконує жодних цілей і є неприємністю. Вам потрібно натиснути клавішу, щоб побачити, чи підключений ви, що болить. Ми працюємо в runlevel 3, тому консоль знаходиться в текстовому режимі, X11 не бере участь.


SLES10 використовує SysV init. У багатьох дистрибутивах використовується systemd, ось можливе рішення для Arch . Системи Debian 6 і 7 використовують kbd за замовчуванням, натисніть тут .
basic6

Відповіді:


85

Ви можете перевірити, який тайм-аут використовує ядро ​​для віртуального запуску консолі за допомогою:

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

Цей файл доступний лише для читання, а час очікування задається в секундах. Поточне значення за замовчуванням становить 10 хвилин.

Ви можете змінити це значення, ввівши наступну команду на віртуальній консолі (якщо ви знаходитесь всередині xterm, вам потрібно перейти на віртуальну консоль, натиснувши, наприклад, Ctrl+ Alt+ F1).

$ setterm -blank VALUE

Де нова хвилина вказана в хвилинах . Значення 0 відключає заготівлю:

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

setterm має інші параметри, пов'язані із збереженням повноважень, найбільш корисною комбінацією здається:

$ setterm -blank 0 -powersave off

Таким чином, щоб назавжди / автоматично відключити запуск віртуальної консолі при запуску, ви можете:

  1. додати consoleblank=0до параметрів ядра (редагувати налаштування grub)
  2. додайте setterm -blank 0команду до rc-localеквівалентного сценарію запуску
  3. додати settermвихід, /etc/issueоскільки /etc/issueвиводиться на кожну віртуальну консоль:

    # setterm -blank 0 >> /etc/issue

Виберіть одну із альтернативних варіантів.


2
PS: У системі Ubuntu 11.10 (Thinkpad X200) я помітив помилку, коли консоль, що замикається ядром, заважає виконувати сеанс X11. Це означає, що рівно через 10 хвилин після останньої клавіші натисніть пробіли дисплея X11 і вам доведеться перейти до віртуальної консолі, щоб повернути екран X11 (дуже дратує під час, наприклад, відтворення відео). Це не залежить від параметрів, що стосуються DPMS / заставки в X11 (подумайте xsetтощо). Таким чином, відключення вірусної консолі, як описано вище, - це швидке вирішення проблемних систем.
maxschlepzig

хммм. Чомусь я не бачу /sys/module/kernel/parameters/consoleblankна своєму сервері CentOS 5.x. Чи можна його встановити під іншою назвою?
Майк Б

1
На 5 і 6 RHEL я виявив, що введення /bin/setterm -blank 0 -powerdown 0 -powersave offв /etc/rc.localроботу буде чудово. Однак на RHEL 7 це не вдасться. Додавання consoleblank=0параметрів до ядра працює на цій платформі.
Девід К.

7
Зауважте, що насправді вам не потрібно працювати settermу віртуальній консолі. Ви можете також перенаправити це на нього: setterm -blank 0 > /dev/tty1працює чудово. Або ви можете використовувати setterm -blank < /dev/tty1для запиту поточного значення від tty1 або setterm -blank force < /dev/tty1для примусового блокування.
Олександр Амелькін

@AlexanderAmelkin - перехід до / з / dev / tty1 не працює в RHEL 7. Який дистриб'ютор ви використовували для цього? / dev / tty1 - це справді локальна консоль, але ні те, ні / dev / console, здається, нічого не роблять.
Пол,

15

Спробуйте скористатися цим:

setterm -blank

1
@markus_b: Отже, додайте цю команду до сценарію init (щось на зразок, /etc/init/markus-console.confякщо ви використовуєте Upstart або /etc/init.d/markus-console.shплюс посилання /etc/rd?.dдля SysVinit, я не знаю фактичних локацій SuSE).
Жиль,

2
@mattdm, неправда - systemdзазвичай постачається rc-localпослуга сумісності - або ви можете легко додати спеціальні сервіси ...
maxschlepzig

3
@mattdm Чому б вам не вдалося просто написати одиницю, яка виконує цю команду?
kyrias

1
ПОРАДА: Перший вихід із tmux , інакше це не спрацює.
Коді Гесс


14

Відповідно до: https://wiki.archlinux.org/index.php/Display_Power_Management_Signaling#DPMS_Interaction_in_a_console_with_setterm

Запобігання вимкненню екрана (у консолі)

$ setterm -blank 0 -powerdown 0

Крім того, ви можете відключити консольну заготовку назавжди за допомогою наступної команди:

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


3
друге рішення працює як шарм Marvell ARM Debian. Усі інші рішення нічого не роблять.
Олексій Свиридов

13

Я реалізував та протестував таку конфігурацію, яка чудово працює на sles10, моєму робочому коні на даний момент.

В

/etc/init.d/boot.local

додати

setterm -blank

схоже, це все, що потрібно. Дякую Уку Лоскіт та Жилсу за натиск у правильному напрямку.


1
Я безрезультатно відредагував вашу відповідь, тому не соромтесь відкатати, якщо вам це не подобається. Крім того, прийміть свою відповідь, оскільки це фактичне рішення. Ви не повинні приймати відповідь лише тому, що ви вдячні, це привело вас до фактичної відповіді, якщо насправді є кращий відповідь.
thepang

Вибачте, як оригінальна версія краще.
markus_b

Мені довелося додати відповіді, проголосовані вгорі, - енергозбереження, оскільки ipmi на моїй системній платі стала дурною, якщо у неї не було обох частин цього. на жаль, він не підтримує налаштування між використанням, і коли ці функції натискають у вікно на передній план і починає пересувати вікно приблизно на 4 різних розміри раз на секунду або 2, що робить його майже неможливим піймати вікно і вручну змінити його розмір / вистрілити термін з енергозбереження :(
Кендрік

13

Єдине постійне рішення - додати consoleblank=0до командного рядка ядра. Ви можете переглянути значення (за замовчуванням до 600 секунд) у:

/sys/module/kernel/parameters/consoleblank

(зауважте, що файл доступний лише для читання). Єдиний спосіб змінити значення consoleblank - це перезавантажити нову опцію командного рядка ядра.


3
Останнє речення неправильне - вам не потрібно перезавантажувати, щоб змінити значення consoleblank. Дивіться мою відповідь.
maxschlepzig

Я не знайшов setterm - пустий, щоб надійно працювати. Іноді здається, що це може бути скинуто після виходу з системи або переходу на інші віртуальні термінали.
amcnabb

Щоб додати це постійне налаштування з grub, відредагуйте /boot/grub/grub.conf та додайте consoleblank = 0 до рядків, починаючи з "kernel / boot / vmlinuz ...". Потім перезавантажте.
Хойлен

1
"Тільки" здається, що це рядкове слово тут ...
notlesh

5

Якщо ви хочете лише запобігти видаленню екрана після входу користувача, його потрібно просто додати setterm -powersave off -blank 0до $HOME/.bash_profileвідповідних користувачів.


5

Мене справді спалахнула ця проблема. Усі вищезазначені хитрощі з використанням setterm та переадресації з / на / dev / tty0 не працювали з мого ssh.

Тоді я зрозумів спосіб її відключити:

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

TERM = linux замінює TERM за замовчуванням (що на моїй машині xterm-256color), і допомагає setterm запитувати належні параметри з tty0.

Ви можете перевірити результат

cat /sys/module/kernel/parameters/consoleblank

Це має бути 0. Якщо це 600, трюк не вийшов.


3

/usr/bin/setterm -powerdown 0 може допомогти також

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.