Mam skrypt, aby po prostu uruchomić moją aplikację graficzną (GUI), jak poniżej.
#cat gui.sh
#!/bin/bash
./gui -display 127.0.0.1:0.0
Kiedy uruchamiam go z lokalnej maszyny ( ./gui.sh
), działa idealnie dobrze. Ale kiedy próbuję uruchomić go ze zdalnego komputera przez ssh, pojawia się błąd.
[root@localhost]# ssh -f 192.168.3.77 "cd /root/Desktop/GUI/ && "./gui.sh""
No protocol specified
gdm: cannot connect to X server 192.168.3.77:0.0
[root@localhost]#
Nie wiem, o który protokół pyta, czy coś mi brakuje? Próbowałem bezpośrednio, uruchamiając aplikację bez skryptu [ ssh -f 192.168.3.77 "cd /root/Desktop/GUI/ && "./gui""
], ale wynik jest taki sam. Próbowałem różnych kombinacji, jak ssh -Y
, ssh -fY
i więcej, ale wynik jest taki sam!
Po drugie, w przypadku mojej aplikacji konieczny jest warunek, że musimy najpierw przejść do katalogu, w którym znajduje się program.
Jakieś rozwiązania?
xhost +
da dostęp każdemu, kto może połączyć się z twoim wyświetlaczem. Polecamxhost +local:[hostname or ip]
Debian Jessie, dodaj także:
źródło
xhost +
naprawiono mój problem (po stronie klienta)/tmp/xauth-1000-_0
ale po rozpoczęciu dwóch dodatkowych sesji X plik zniknął - pozostała tylko trzecia. Aby naprawić problem dla wszystkich okien, przywróciłem go za pomocą:ln -s ~/.Xauthority /tmp/xauth-1000-_0
Trafił mnie ten sam problem, który rozwiązałem, zmieniając zmienną środowiskową DISPLAY z:
do
źródło