Disabilita la cancellazione dello schermo sulla console di testo


75

Sto eseguendo cluster Linux, principalmente su SLES10. I server sono principalmente blade, accessibili tramite console remota. C'è una vera console nella stanza del server, ma spenta.

Vorrei disabilitare la cancellazione dello schermo in quanto non serve a nulla ed è un fastidio. Devi premere il tasto per vedere se sei connesso, il che è un dolore. Stiamo eseguendo in runlevel 3, quindi la console è in modalità testo, senza X11 coinvolti.


SLES10 utilizza SysV init. Molte distribuzioni usano systemd, ecco una possibile soluzione per Arch . I sistemi Debian 6 e 7 usano kbd di default, clicca qui .
basic6

Risposte:


85

È possibile verificare quale timeout utilizza il kernel per il blanking della console virtuale tramite:

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

Questo file è di sola lettura e il timeout è specificato in secondi. L'impostazione predefinita attuale è di 10 minuti.

Puoi modificare quel valore inserendo il seguente comando su una console virtuale (se ti trovi all'interno di un xterm devi passare a una console virtuale premendo il Ctrltasto es. + Alt+ F1).

$ setterm -blank VALUE

Dove viene specificato il nuovo VALUE in minuti . Un valore pari a 0 disabilita il blanking:

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

setterm ha altre opzioni relative al risparmio di energia , la combinazione più utile sembra essere:

$ setterm -blank 0 -powersave off

Pertanto, per disabilitare permanentemente / automaticamente il blanking della console virtuale all'avvio è possibile:

  1. aggiungi consoleblank=0ai parametri del kernel (modifica la configurazione di grub)
  2. aggiungere il setterm -blank 0comando a uno rc-localscript di avvio equivalente o equivalente
  3. aggiungi l' settermoutput a /etc/issuepoiché /etc/issueè l'output su ogni console virtuale:

    # setterm -blank 0 >> /etc/issue

Scegli un'alternativa tra quelle sopra.


2
PS: Su un sistema Ubuntu 11.10 (Thinkpad X200) ho notato un bug in cui il blanking della console da parte del kernel interferisce con una sessione X11 in esecuzione. Ciò significa che esattamente 10 minuti dopo l'ultimo tasto premete gli spazi vuoti del display X11 e dovete passare a una console virtuale per ripristinare lo schermo X11 (molto fastidioso durante ad esempio la riproduzione di video). Questo è indipendente dalle impostazioni relative a DPMS / screensaver in X11 (pensa xsetecc.). Pertanto, disabilitare il blanking della console virutale come descritto sopra è una soluzione rapida per i sistemi interessati.
maxschlepzig,

hmmm. Per qualche motivo, non vedo /sys/module/kernel/parameters/consoleblanksul mio server CentOS 5.x. Potrebbe essere impostato con un nome diverso?
Mike B,

1
Su RHEL 5 e 6, ho scoperto che mettendo /bin/setterm -blank 0 -powerdown 0 -powersave offin /etc/rc.localgrande lavoro. Su RHEL 7, tuttavia, fallirebbe. L'aggiunta consoleblank=0ai parametri del kernel funziona su quella piattaforma.
David C.

7
Si noti che in realtà non è necessario eseguire settermin una console virtuale. Puoi anche reindirizzarlo ad esso: setterm -blank 0 > /dev/tty1funziona benissimo. Oppure puoi usare setterm -blank < /dev/tty1per interrogare il valore corrente da tty1 o setterm -blank force < /dev/tty1per forzare il blanking.
Alexander Amelkin,

@AlexanderAmelkin - i reindirizzamenti a / da / dev / tty1 non funzionano in RHEL 7. Quale distro stavi usando per farlo? / dev / tty1 è davvero la console locale, ma né quello né / dev / console sembrano fare nulla.
Paul,

15

Prova a usare questo:

setterm -blank

1
@markus_b: quindi aggiungi questo comando a uno script di init (qualcosa come /etc/init/markus-console.confse usi Upstart o /etc/init.d/markus-console.shpiù /etc/rd?.dcollegamenti simbolici per SysVinit, non conosco le posizioni reali di SuSE).
Gilles 'SO- smetti di essere malvagio' il

2
@mattdm, non è vero - di systemdsolito viene fornito con un rc-localservizio di compatibilità - oppure puoi facilmente aggiungere servizi personalizzati ...
maxschlepzig

3
@mattdm Perché non dovresti essere in grado di scrivere solo un'unità che esegue quel comando?
kyrias,

1
SUGGERIMENTO: uscire prima da tmux , altrimenti non funzionerà.
Cody Hess il


14

Secondo: https://wiki.archlinux.org/index.php/Display_Power_Management_Signaling#DPMS_Interaction_in_a_console_with_setterm

Impedisci lo spegnimento dello schermo (nella console)

$ setterm -blank 0 -powerdown 0

In alternativa è possibile disabilitare il blanking della console in modo permanente utilizzando il seguente comando:

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


3
la seconda soluzione funziona come un incantesimo su Marvell ARM Debian. Tutte le altre soluzioni non fanno nulla.
Alexey Sviridov,

13

Ho implementato e testato la seguente configurazione, che funziona perfettamente su sles10, il mio cavallo di battaglia al momento.

Nel

/etc/init.d/boot.local

Inserisci

setterm -blank

sembra che sia tutto ciò che serve. Grazie per Uku Loskit e Gilles per la spinta nella giusta direzione.


1
Ho modificato la tua risposta senza pietà, quindi non esitare a tornare indietro se non ti piace. Inoltre, accetta la tua risposta perché è la soluzione effettiva. Non dovresti accettare una risposta solo perché sei grato che ti abbia portato alla risposta effettiva, se in realtà esiste una risposta migliore.
Tshepang,

Spiacente, come la versione originale meglio.
markus_b

Ho dovuto aggiungere le risposte più votate, risparmiando, poiché l'ipmi sulla mia scheda di sistema è diventato stupido se non avesse entrambe le parti. purtroppo non mantiene le impostazioni tra gli usi e quando queste funzionalità si aprono nella finestra si apre in primo piano e inizia a scorrere la finestra di circa 4 diverse dimensioni una volta al secondo o 2, rendendo quasi impossibile catturare la finestra e ridimensionarla manualmente / togli il termine dal risparmio energetico :(
Kendrick

13

L'unica soluzione permanente è quella di aggiungere consoleblank=0alla riga di comando del kernel. È possibile visualizzare il valore (il cui valore predefinito è 600 secondi) in:

/sys/module/kernel/parameters/consoleblank

(nota che il file è di sola lettura). L'unico modo per modificare il valore di consoleblank è riavviare con la nuova opzione della riga di comando del kernel.


3
L'ultima frase è sbagliata: non è necessario riavviare per modificare il valore di consoleblank. Vedi la mia risposta
maxschlepzig,

Non ho trovato setterm -blank per funzionare in modo affidabile. A volte sembra ripristinarsi dopo il logout o il passaggio ad altri terminali virtuali.
amcnabb,

Per aggiungere questa impostazione permanente con grub, modifica /boot/grub/grub.conf e aggiungi consoleblank = 0 alle righe che iniziano con "kernel / boot / vmlinuz ...". Quindi riavviare.
Hoylen,

1
"solo" sembra una parola stringa qui ...
notlesh

5

Se si desidera solo per evitare che lo schermo in bianco fuori dopo il login utente, quindi solo bisogno di aggiungere setterm -powersave off -blank 0a $HOME/.bash_profiledei rispettivi utenti.


5

Sono stato davvero colpito da questo problema. Tutti i trucchi sopra con l'uso di setterm e reindirizzamento da / a / dev / tty0 non hanno funzionato dal mio ssh.

Poi ho realizzato un modo per disabilitarlo:

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

TERM = linux sostituisce TERM predefinito (che è xterm-256color sulla mia macchina), e aiuta setterm a interrogare i parametri corretti da tty0.

Puoi controllare il risultato entro

cat /sys/module/kernel/parameters/consoleblank

Dovrebbe essere 0. Se è 600, il trucco non ha funzionato.


3

/usr/bin/setterm -powerdown 0 potrebbe aiutare anche

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.