Nonaktifkan pengosongan layar pada konsol teks

75

Saya menjalankan cluster linux, kebanyakan di SLES10. Server-servernya sebagian besar adalah bilah, diakses melalui konsol jarak jauh. Ada konsol nyata di ruang server, tetapi dimatikan.

Saya ingin menonaktifkan pengosongan layar karena tidak ada gunanya dan merupakan gangguan. Anda harus menekan tombol untuk melihat apakah Anda terhubung yang menyebalkan. Kami berjalan di runlevel 3, jadi konsol dalam mode teks, tidak ada X11 yang terlibat.

markus_b
sumber
SLES10 menggunakan SysV init. Banyak distribusi menggunakan systemd, inilah solusi yang memungkinkan untuk Arch . Sistem Debian 6 dan 7 menggunakan kbd secara default, klik di sini .
basic6
Untuk Debian, lihat unix.stackexchange.com/questions/238846 .
JdeBP

Jawaban:

85

Anda dapat memverifikasi batas waktu apa yang digunakan kernel untuk pengosongan konsol virtual melalui:

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

File ini hanya-baca dan batas waktu ditentukan dalam detik. Default saat ini tampaknya 10 menit.

Anda dapat mengubah nilai itu dengan memasukkan perintah berikut di konsol virtual (jika Anda berada di dalam xterm, Anda harus mengubah ke konsol virtual melalui menekan misalnya Ctrl+ Alt+ F1).

$ setterm -blank VALUE

Di mana VALUE baru ditentukan dalam beberapa menit . Nilai 0 menonaktifkan pengosongan:

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

setterm memiliki opsi terkait penghematan daya lainnya, kombinasi yang paling berguna adalah:

$ setterm -blank 0 -powersave off

Dengan demikian untuk secara permanen / otomatis menonaktifkan blanking konsol virtual saat startup Anda dapat:

  1. tambahkan consoleblank=0ke parameter kernel (edit konfigurasi grub)
  2. tambahkan setterm -blank 0perintah ke rc-localskrip startup atau yang setara
  3. tambahkan settermoutput /etc/issuekarena /etc/issueadalah output pada setiap konsol virtual:

    # setterm -blank 0 >> /etc/issue

Pilih satu alternatif dari yang di atas.

maxschlepzig
sumber
2
PS: Pada sistem Ubuntu 11.10 (Thinkpad X200) saya melihat ada bug di mana konsol yang kosong oleh kernel mengganggu sesi X11 yang sedang berjalan. Itu berarti bahwa tepat 10 menit setelah tombol terakhir tekan tampilan X11 kosong dan Anda harus siklus ke konsol virtual untuk mendapatkan layar X11 kembali (sangat mengganggu selama misalnya pemutaran video). Ini tidak tergantung pada pengaturan terkait DPMS / screensaver di bawah X11 (pikirkan xsetdll.). Dengan demikian, menonaktifkan pengosongan konsol virutal seperti dijelaskan di atas adalah solusi cepat untuk sistem yang terkena dampak.
maxschlepzig
hmmm. Untuk beberapa alasan, saya tidak melihat /sys/module/kernel/parameters/consoleblankserver CentOS 5.x saya. Mungkinkah itu diatur dengan nama yang berbeda?
Mike B
1
Pada RHEL 5 dan 6, saya menemukan bahwa menempatkan /bin/setterm -blank 0 -powerdown 0 -powersave offdi /etc/rc.localakan bekerja besar. Pada RHEL 7, namun itu akan gagal. Menambahkan consoleblank=0ke parameter kernel berfungsi pada platform itu.
David C.
7
Harap dicatat bahwa Anda sebenarnya tidak harus berjalan settermdi konsol virtual. Anda mungkin mengarahkannya ke: setterm -blank 0 > /dev/tty1berfungsi dengan baik. Atau Anda dapat menggunakan setterm -blank < /dev/tty1untuk meminta nilai saat ini dari tty1 atau setterm -blank force < /dev/tty1untuk memaksa blanking.
Alexander Amelkin
@AlexanderAmelkin - pengalihan ke / dari / dev / tty1 tidak berfungsi di RHEL 7. Distro mana yang Anda gunakan untuk melakukan itu? / dev / tty1 memang konsol lokal, tetapi baik itu / dev / console tidak melakukan apa-apa.
Paul
15

Coba gunakan ini:

setterm -blank
Uku Loskit
sumber
1
@markus_b: Jadi tambahkan perintah ini ke skrip init (sesuatu seperti /etc/init/markus-console.confjika Anda menggunakan Pemula, atau /etc/init.d/markus-console.shditambah symlink /etc/rd?.duntuk SysVinit, saya tidak tahu lokasi SuSE yang sebenarnya).
Gilles
2
@mattdm, tidak benar - systemdbiasanya dilengkapi dengan rc-locallayanan kompatibilitas - atau Anda dapat dengan mudah menambahkan layanan khusus ...
maxschlepzig
3
@mattdm Mengapa Anda tidak bisa hanya menulis unit yang menjalankan perintah itu?
kyrias
1
TIP: Keluar dulu tmux , atau ini tidak akan berhasil.
Cody Hess
13

Saya telah mengimplementasikan dan menguji konfigurasi berikut, yang berfungsi dengan baik di sles10, pekerja keras saya saat ini.

Di

/etc/init.d/boot.local

Menambahkan

setterm -blank

sepertinya hanya itu yang diperlukan. Terima kasih untuk Uku Loskit dan Gilles untuk dorongan ke arah yang benar.

markus_b
sumber
1
Saya telah mengedit Jawaban Anda tanpa ampun, jadi jangan ragu untuk mengembalikan jika Anda tidak menyukainya. Juga, mohon Terima jawaban Anda karena itu adalah solusi yang sebenarnya. Anda tidak boleh Menerima Jawaban hanya karena Anda bersyukur itu menuntun Anda ke jawaban yang sebenarnya, jika sebenarnya ada Jawaban yang lebih baik.
tshepang
Maaf, lebih baik versi aslinya.
markus_b
Saya harus menambahkan jawaban pilihan teratas -mematikan karena ipmi di sistem saya menjadi bodoh jika tidak memiliki kedua bagian ini. sayangnya itu tidak menjaga pengaturan antara penggunaan dan ketika fitur-fitur ini muncul di jendela muncul ke latar depan dan mulai bersepeda jendela melalui sekitar 4 ukuran yang berbeda sekali setiap detik atau 2 membuatnya hampir mustahil untuk menangkap jendela dan secara manual mengubah ukurannya / tendang istilah dari power save :(
Kendrick
13

Satu-satunya solusi permanen adalah menambahkan consoleblank=0ke baris perintah kernel. Anda dapat melihat nilai (yang defaultnya 600 detik) di:

/sys/module/kernel/parameters/consoleblank

(perhatikan bahwa file tersebut hanya baca). Satu-satunya cara untuk mengubah nilai consoleblank adalah reboot dengan opsi baris perintah kernel yang baru.

amcnabb
sumber
3
Kalimat terakhir salah - Anda tidak perlu memulai ulang untuk mengubah nilai consoleblank. Lihat jawaban saya.
maxschlepzig
Saya belum menemukan setterm -blank untuk bekerja dengan andal. Kadang-kadang tampaknya mendapatkan reset setelah logout atau beralih ke terminal virtual lainnya.
amcnabb
Untuk menambahkan pengaturan permanen ini dengan grub, edit /boot/grub/grub.conf dan tambahkan consoleblank = 0 ke baris yang dimulai dengan "kernel / boot / vmlinuz ...". Kemudian reboot.
Hoylen
1
"hanya" sepertinya kata string di sini ...
not not
5

Jika Anda hanya ingin mencegah layar kosong setelah pengguna masuk, maka hanya perlu menambahkan setterm -powersave off -blank 0ke $HOME/.bash_profilemasing-masing pengguna.

jurijcz
sumber
5

Saya benar-benar tersentuh oleh masalah ini. Semua trik di atas dengan menggunakan setterm dan redirect dari / ke / dev / tty0 tidak berhasil dari ssh saya.

Kemudian saya menyadari cara untuk menonaktifkannya:

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

TERM = linux menggantikan TERM default (yang xterm-256color pada mesin saya), dan membantu setterm untuk menanyakan parameter yang tepat dari tty0.

Anda dapat memeriksa hasilnya dengan

cat /sys/module/kernel/parameters/consoleblank

Itu harus 0. Jika 600, trik belum berhasil.

George Shuklin
sumber
3

/usr/bin/setterm -powerdown 0 mungkin membantu juga

cnd
sumber