Описанное поведение исходит напрямую от ядра Linux, видимо это привет из далёкого прошлого, когда к таким хостам подключались текстовые терминалы с люминофорными устройствами визуализации, которые нужно было беречь от выгорания.
Проверить, через какое время физичекский терминал "погаснет" при отсутсвии пользовательского ввода в него, можно посмотрев на содержимое файла /sys/module/kernel/parameters/consoleblank:
$ cat /sys/module/kernel/parameters/consoleblank
600
$ cat /sys/module/kernel/parameters/consoleblank
600
Этот файл доступен только на чтение, изменить настройку, перезаписав его, нельзя. Значение в нём - это секунды, то есть в приведённом примере консоль "гаснет" через 10 минут простоя.
Чтобы отключить это поведение глобально и навсегда, следует добавить строку consoleblank=0
к параметрам ядра в конфиге grub и перезагрузить ОС (не забыть про update-grub
после редактирования). Например, так:
$ cat /etc/default/grub | grep -v '#'
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=7
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="consoleblank=0"
$ cat /etc/default/grub | grep -v '#'
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=7
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="consoleblank=0"
После перезагрузки видим, что параметры ядром считались и приняты:
$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.6.0-040600-generic root=UUID=544c13df-3ff3-47ba-94cc-407e414c6906 ro consoleblank=0
$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.6.0-040600-generic root=UUID=544c13df-3ff3-47ba-94cc-407e414c6906 ro consoleblank=0
И настройка "засыпания" консоли изменилась:
$ cat /sys/module/kernel/parameters/consoleblank
0
$ cat /sys/module/kernel/parameters/consoleblank
0
Изменить этот параметр на лету, без перезагрузки, можно с помощью команды setterm
, например так: setterm -blank 0
или даже так: setterm -blank 0 -powerdown 0 -powersave off
, однако тут есть целых два "НО":
- это работает только, если команду
setterm
вводить в "физическую" консоль (Ctrl+Alt+F1), а при вводе через ssh не работает - в Интернете пишут, что поведение
setterm
меняется от ядра к ядру и от дистрибутива к дистрибутиву, т.е. считать это способ вполне универсальным нельзя