Ich habe ein Skript, um einfach meine grafische (GUI) Anwendung wie unten auszuführen.
#cat gui.sh
#!/bin/bash
./gui -display 127.0.0.1:0.0
Wenn ich es von einem lokalen Computer ( ./gui.sh
) aus starte, läuft es einwandfrei. Aber wenn ich versuche, es von einem Remote-Computer über ssh auszuführen, wurde der folgende Fehler angezeigt.
[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]#
Ich weiß nicht, welches Protokoll gefragt wird oder fehlt mir etwas? Ich habe es direkt versucht, indem ich die Anwendung ohne Skript [ ssh -f 192.168.3.77 "cd /root/Desktop/GUI/ && "./gui""
] gestartet habe, aber das Ergebnis ist dasselbe. Ich habe verschiedene Kombinationen wie und mehr ausprobiert ssh -Y
, ssh -fY
aber das Ergebnis ist das gleiche!
Zweitens gibt es für meine Anwendung eine Bedingung, dass wir zuerst in das Verzeichnis gehen müssen, in dem sich das Programm befindet.
Irgendwelche Lösungen?
xhost +
ermöglicht jedem Zugriff auf Ihr Display. Ich würde empfehlenxhost +local:[hostname or ip]
Debian Jessie, füge auch hinzu:
quelle
xhost +
mein Problem behoben (auf der Client-Seite)/tmp/xauth-1000-_0
aber nachdem ich zwei zusätzliche X-Sitzungen gestartet hatte, war diese Datei verschwunden - nur die dritte blieb übrig. Um das Problem für alle Fenster zu beheben, habe ich es wiederhergestellt mit:ln -s ~/.Xauthority /tmp/xauth-1000-_0
Ich war von demselben Problem betroffen, das ich durch Ändern der Umgebungsvariablen DISPLAY von:
zu
quelle