Jak Mogę określić wyświetlacz?

Gdy uruchamiam niektóre programy przez SSH, takie jak firefox &, dostaję błąd

Error: no display specified 

Chciałbym otworzyć wiele wyświetlaczy, nadal pokazując stdout każdego programu.

Pierwsze pytanie: Jak mogę określić wyświetlacz, aby uzyskać program o wielu wyświetleniach?

Pablo Santa Cruz daje mi następujący kod jako rozwiązanie. Nie rozumiem tego.
$ export DISPLAY=yourmachine.yourdomain.com:0.0

$ firefox &

Jakie są yourmachine i yourdomain.com w poleceniu?

 49
x11
Author: Yuan Wen, 2009-04-24

11 answers

Sposób działania X jest taki sam jak każdy program sieciowy. Masz serwer o pewnym opisie (w tym przypadku serwer wyświetlania X), który działa na określonej maszynie, i masz klientów X (takich jak firefox), które próbują połączyć się z tym serwerem, aby wyświetlić swoje informacje.

Często (na" domowych " maszynach), klient i serwer działają na tym samym pudełku i jest tylko jeden serwer, ale X jest na tyle potężny, że nie musi się to zdarzyć. Został zbudowany z oddzielenie Serwer / Klient wbudowany od początku.

To pozwala na takie cudowne rzeczy, jak zalogowanie się do swojego pudełka (w trybie tekstowym) w połowie planety, powiedz mu, że serwer wyświetlania jest tym pudełkiem, na którym aktualnie się znajdujesz, i voila, okna nagle zaczynają pojawiać się lokalnie.

Aby klient mógł wejść w interakcję z użytkownikiem, musi wiedzieć, jak znaleźć serwer. Można to zrobić na wiele sposobów. Wielu klientów dopuszcza opcję -display lub --display do "Type": "content"]}
xeyes -display paxbox1.paxco.com:0.0

Wielu będzie używać zmiennej środowiskowej DISPLAY, Jeśli wyświetlacz nie jest podany. Możesz ustawić tę zmienną jak każdą inną:

DISPLAY=paxbox1.paxco.com:0.0; export DISPLAY # in .profile
export DISPLAY=paxbox1.paxco.com:0.0 # in your shell
DISPLAY=paxbox1.paxco.com:0.0 firefox & # for that command (shell permitting)

Pierwsza część zmiennej DISPLAY jest tylko adresem serwera wyświetlania. Stosuje się do tej samej zasady, co każdy inny adres IP; może to być rozwiązalna Nazwa DNS (w tym localhost) lub określony adres IP (np. 192.168.10.55).

Druga część jest specyficzna dla X. Daje X "display" (serwer X) numer i numer ekranu do użycia. Pierwszy (numer wyświetlacza) ogólnie odnosi się do grupy urządzeń zawierających jeden lub więcej ekranów, ale z jedną klawiaturą i myszą (tj. jeden strumień wejściowy). Numer ekranu zazwyczaj podaje konkretny Ekran w tej grupie.

Przykładem może być:

+----------------------------------------+
|paxbox1.paxco.com|                      |
+-----------------+                      |
|                                        |
|  +----------+----+  +----------+----+  |
|  |Display :0|    |  |Display :1|    |  |
|  +----------+    |  +----------+    |  |
|  |               |  |               |  |
|  | +-----------+ |  |               |  |
|  | |Screen :0.0| |  |               |  |
|  | +-----------+ |  |               |  |
|  | +-----------+ |  |               |  |
|  | |Screen :0.1| |  |               |  |
|  | +-----------+ |  |               |  |
|  | +-----------+ |  | +-----------+ |  |
|  | |Screen :0.2| |  | |Screen :1.0| |  |
|  | +-----------+ |  | +-----------+ |  |
|  | +-----------+ |  | +-----------+ |  |
|  | |Screen :0.3| |  | |Screen :1.1| |  |
|  | +-----------+ |  | +-----------+ |  |
|  | +-----------+ |  | +-----------+ |  |
|  | | Keyboard  | |  | |  Keyboard | |  |
|  | +-----------+ |  | +-----------+ |  |
|  | +-----------+ |  | +-----------+ |  |
|  | |   Mouse   | |  | |   Mouse   | |  |
|  | +-----------+ |  | +-----------+ |  |
|  +---------------+  +---------------+  |
|                                        |
+----------------------------------------+

Tutaj masz jedną maszynę (paxbox1.paxco.com) z dwoma serwerami wyświetlania. Pierwszy ma cztery ekrany, a drugi ma dwa. Możliwości są wtedy:

DISPLAY=paxbox1.paxco.com:0.0
DISPLAY=paxbox1.paxco.com:0.1
DISPLAY=paxbox1.paxco.com:0.2
DISPLAY=paxbox1.paxco.com:0.3
DISPLAY=paxbox1.paxco.com:1.0
DISPLAY=paxbox1.paxco.com:1.1

W zależności od gdzie ma pojawić się rzeczywiste okno i jakich urządzeń wejściowych chcesz użyć.

 62
Author: paxdiablo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-20 09:11:10
$ export DISPLAY=yourmachine.yourdomain.com:0.0
$ firefox &
 18
Author: Pablo Santa Cruz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-24 03:39:27

Gdy łączysz się z inną maszyną przez SSH, możesz włączyć X-Forwarding w SSH, tak aby x okna były przesyłane zaszyfrowane przez tunel SSH z powrotem do twojej maszyny. Możesz włączyć przekazywanie X, dodając -X do wiersza poleceń ssh lub ustawiając ForwardX11 yes w pliku konfiguracyjnym SSH.

Aby sprawdzić, czy przekierowanie X zostało pomyślnie skonfigurowane (serwer może na to nie zezwolić), po prostu spróbuj, jeśli echo $DISPLAY wyświetli coś w rodzaju localhost:10.0.

 11
Author: TobiX,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-08 01:09:03

Try

export DISPLAY=localhost:0.0
 9
Author: sreenath,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-04 00:13:02

Spróbuj zainstalować pakiet xorg-x11-xauth.

 6
Author: thegriglat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-11 10:53:18

Natknąłem się na podobny problem, więc może ta odpowiedź komuś pomoże.

Powodem błędu Error: no display specified Jest to, że Firefox jest uruchamiany, ale na zdalnym hoście nie działa żaden serwer X (GUI). Możesz użyć przekierowania X11, aby uruchomić Firefoksa na zdalnym hoście, ale wyświetlić go na lokalnym hoście. W systemie Mac OS X musisz pobrać XQuartz w celu wykorzystania przekierowania X11. Bez niego nie będziesz miał zestawu zmiennej $DISPLAY, więc jeśli spróbujesz i echo $DISPLAY, będzie to puste.

 4
Author: Andrew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-31 04:31:51

Proszę nie próbować ustawić $DISPLAY ręcznie podczas łączenia przez SSH.
Jeśli połączysz się przez SSH -X i $DISPLAY pozostanie pusty, zazwyczaj oznacza to, że nie można utworzyć zaszyfrowanego kanału.

Najprawdopodobniej brakuje ci paczki xauth lub xorg-x11-xauth. Spróbuj zainstalować go na zdalnym komputerze za pomocą:

sudo apt-get install xauth

Lub

sudo apt-get install xorg-x11-xauth

Po tym zakończeniu i ponownie uruchom połączenie SSH. Nie zapomnij użyć SSH -X, aby wyjście X Window zostało przekazane do twojego lokalnego maszyna.

Spróbuj ponownie echo $DISPLAY, aby sprawdzić, czy $DISPLAY został ustawiony automatycznie przez demona SSH. Powinien pokazać linię z adresem IP i portem.

 2
Author: Jpsy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-30 11:53:57

Miałem dziś podobny problem. Oto proste rozwiązanie: Podczas wykonywania SSH na komputerze wystarczy dodać Ctrl - Y .

ssh user@ip_address -Y

Po zalogowaniu wpisz firefox &. I jesteś gotowy.

 2
Author: Nandita Shukla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-14 15:06:23

Zaloguj się na swój serwer przez

ssh -X root@yourIP

Edytuj plik/etc/ssh / sshd_config i dodaj do niego tę linię.

X11UseLocalhost no

Uruchom ponownie sshd. dla CentOS (sprawdź dystrybucję )

/sbin/service sshd restart

Sprawdź Wyświetlacz

echo $DISPLAY

Powinieneś to zobaczyć

yourIP:10.0

Enjoy

firefox

Więcej informacji

 2
Author: Ammar Bozorgvar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-17 10:35:37

Nawet ja zmierzyłem się z tym samym w CentOS 6.8.

yum reinstall xorg*

Zakończ bieżącą sesję i otwórz inną sesję w narzędziu takim jak mobiXterm. Upewnij się, że w narzędziu jest włączone przekazywanie X11.

 1
Author: Srihari Karanth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-27 10:09:38

I przez vnc zrozumieć X11 więcej. Aby określić wyświetlacz, aby uzyskać wiele wyświetlanych programów, export DISPLAY = IP: DisplayNum.ScreenNum

Na przykład,

vncserver :2
vncserver -list
echo '$DISPLAY'=$DISPLAY 
export DISPLAY=:2  # export DISPLAY=IP:DisplayNum or export DISPLAY=:DisplayNum for localhost; So that can vnc connect and see the vnc desktop :2 if $DISPLAY is not :2.
echo '$DISPLAY'=$DISPLAY
 0
Author: Yang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-21 02:58:39