Spegni il monitor usando la riga di comando


60

Sto eseguendo Ubuntu Server sul mio laptop. Non c'è davvero alcun motivo per cui lo schermo sia acceso. Ho provato a usare questo comando per spegnere lo schermo:

sleep 1 && xset dpms force off

Il problema è che ottengo il seguente errore

unable to open display "".

Qualche idea di cosa sta succedendo / cosa non va? Qualche altro suggerimento su come farlo?


Hai un server X installato? E sta funzionando?
enzotib,

@enzotib Credo che sia installato. Per quanto riguarda la corsa, non ne sono sicuro. Come posso controllare?
AngryBird,

1
Prova a eseguire questo prima:export DISPLAY=:0.0
RobinJ,

Output non nullo da dpkg -l | grep xserver-xorginstallare. Output non nullo da pgrep -fl Xin esecuzione. A proposito, se in esecuzione dovresti essere in una sessione grafica.
enzotib,

1
@ WarriorIng64: è un laptop
enzotib,

Risposte:


59

Per disattivare il monitor nella console, il comando è il seguente:

sudo vbetool dpms off

Per riprendere il controllo della console premendo il tasto Invio , suggerisco

sudo sh -c 'vbetool dpms off; read ans; vbetool dpms on'

2
Probabilmente vorrai quindi alias molto su qualcosa di utile.
Danny Staple,

1
vbetool è disponibile susudo apt-get install vbetool
David Clarke

1
Nel mio caso questo comando ha davvero spento il display e non xsetquello
golimar il

Stranamente il comando spegne 2 di 3 display, il terzo rimane bianco per un po 'prima di riavviare la macchina da solo se il comando è stato eseguito su ssh.
danba

@enzotib, ho cliccato per errore per votare, mi dispiace. Modifica un po 'la risposta a Posso rimuovere il downvote.
andras.tim

32

Prova questi comandi ...

Per spegnere:

xset -display :0.0 dpms force off 

Per attivare:

xset -display :0.0 dpms force on 

Se il display si spegne e si riaccende immediatamente, provare quanto segue, che aggiunge un ritardo di 1 secondo prima di spegnere lo schermo. Questo dà la possibilità a tutti gli eventi di essere elaborati dal server X prima di spegnere il display.

sleep 1 && xset -display :0.0 dpms force off 

Come faccio a sapere quale schermo è quale
Karl Morrison,

1
Quanto segue ha funzionato per me (anche parzialmente ispirato alla risposta di @ enzotib ):xset -display $DISPLAY dpms force off; read temp; xset -display $DISPLAY dpms force on
stiemannkj1

Stai attento con questo. Non riesco a riaccendere il monitor con una macchina di prova dopo l'emissioneforce off
Zmart,

2
Aggiornamento: estrarre e sostituire tutti i cavi (inclusa l'alimentazione) sul monitor ha risolto la situazione.
Zmart,

27

Il xsetcomando menzionato in altre risposte spegne tutti i monitor se si dispone di più monitor. Tuttavia, se si desidera disattivare solo uno o alcuni dei monitor che è necessario utilizzare xrandr.

xrandr -qComando di prima esecuzione , che elencherà tutti i monitor e le sue impostazioni di visualizzazione correnti. All'inizio di ogni dettaglio del monitor troverai il nome del monitor impostato dal sistema. Devi tenerne traccia.

Ho due monitor (uno è collegato alla porta DVI e l'altro alla porta VGA) e quando eseguo il comando vedo questo:

Screen 0: minimum 320 x 200, current 1360 x 768, maximum 2726 x 2726
DFP1 connected 1360x768+0+0 (normal left inverted right x axis y axis) 304mm x 228mm
   1360x768       59.7*+
   ... (more details are shown here, but I have hidden it)

CRT1 connected 1360x768+0+0 (normal left inverted right x axis y axis) 410mm x 230mm
   1360x768       59.8*+   60.0  
   ... (more details are shown here, but I have hidden it)

In questa uscita, il monitor collegato alla porta DVI è etichettato come DFP1e un altro come CRT1. Quindi, se voglio spegnere il monitor secondario (cioè, CRT1) ho eseguito questo comando:

xrandr --output CRT1 --off

se vuoi riaccendere quel monitor allora hai eseguito questo comando:

xrandr --output CRT1 --auto

Ho 3 monitor, 1 VGA, 1 DVI e 1 HDMI. Quando ho eseguito: xrandr --output VGA1 --auto, ha acceso il VGA, ma ha clonato il monitor DVI.
ThiagoPonte,

Hmm strano. Prova --on invece di --auto
Harshith JV il

@ HarshithJ.V. questa è una buona risposta! È meglio del xsetperché xset si accende se si preme semplicemente il touchpad ecc. Spero che ti ricordi di me dalla tua precedente azienda :-)
Nishant

@Nishant Grazie per i complimenti. Stranamente non mi ricordo di te. Per favore, chiamami su qualsiasi altro social media perché non possiamo chattare perché è contro le regole.
Harshith JV,

Se hai un errore crtc, digita "chvt 7" prima del comando xrandr, in modo che sia scritto "chvt 7 && xrandr -d: 0 --output eDP1 --auto"
haytham-med haytham

12

Ho appena installato Ubuntu Server 18.04.1 (nessuna GUI, X, né nulla di grafico), e dopo essermi rotto la schiena ieri sera cercando di spegnere lo schermo ho finalmente trovato il comando magico:

setterm --blank 1

Dopo aver eseguito il comando, lo schermo si spegne automaticamente ogni minuto (se inattivo).


E ancora meglio, se vuoi che il comando venga eseguito automaticamente all'avvio, puoi aggiungerlo alla riga di comando di GRUB , per fare ciò dobbiamo modificare il file successivo:

sudo nano /etc/default/grub

Una volta lì, basta aggiungere consoleblank=60a GRUB_CMDLINE_DEFAULT, dovrebbe assomigliare a questo:

GRUB_CMDLINE_LINUX_DEFAULT="quiet consoleblank=60"

Quindi chiudi il file e salvalo, dopodiché esegui sudo update-grube voilà , ogni volta che avvii lo schermo si spegnerà automaticamente ogni 60 secondi. (di nuovo, se inattivo).

E in questo modo (aggiungendo il consoleblank al GRUB) funziona anche da terminali remoti (ssh).

Godere! (ancora)


1
Eseguendo il comando precedente ottengo: "setterm: terminal xterm-256color non supporta --blank". Cosa può esserci di sbagliato?
zx485,

1
Stai provando da una sessione remota?
Boy Graffity,

@ zx485 Controlla la risposta aggiornata, ora puoi spegnere lo schermo da una sessione remota. Sono sicuro che questo risolverà il tuo problema
Boy Graffity

6

Se hai più monitor, usa questo:

Spegnimento del secondo monitor:
(Supponendo che CRT-0 sia il monitor sinistro e CRT-1 sia il monitor destro)
xrandr --output CRT-1 --off
Accensione del secondo monitor: In
xrandr --output CRT-1 --right-of CRT-0 --auto
questo modo xrandr sa di non duplicare il primo schermo.


Lo stavo testando, spegnere uno schermo in questo modo è più come disabilitarlo, ad esempio, lo schermo è ancora acceso. Non è solo usato. Lo --offschermo d non può essere riacceso con il pulsante di accensione dello schermo (perché è ancora acceso / non è mai stato spento). Ha anche incasinato le impostazioni di visualizzazione del desktop (dal desktop esteso ai display con mirroring). Se questo fosse fatto per spegnere entrambi i display, non sono sicuro che sarebbe facile riaccenderli senza accedere a TTY e cancellare il file monitors.xml ovunque si trovi. Più si conosce.
ThorSummoner,

0

Avevo lo stesso problema. Quello che ho scoperto è che sul mio laptop (un vecchio aspirapolvere) è supportato il pulsante screentoggle predefinito. Questo potrebbe essere qualcosa del genere fn+F6.

Questa soluzione probabilmente non ha funzionato in passato. Spero che possa aiutare chiunque incontri questo problema.

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.