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?
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ć.
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 &
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
.
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
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.
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.
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.
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.
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
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.
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
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