Ich habe einen Computer mit Ubuntu + einem grafischen Desktop, auf dem ich häufig OpenGL-Anwendungen ausführe, nur um den Bildschirm aufzunehmen und Videos zu erstellen. Mich interessiert nur das generierte Video, aber um den OpenGL-Kontext zu erstellen, muss ich ein Fenster öffnen. Ich habe also ein Programm, das ich vom Terminal aus ausführen kann, das das Fenster öffnet, Dinge mit OpenGL rendert und die Pixeldaten an einen ffmpeg-Prozess sendet, um das Video zu erstellen, und es funktioniert. Jetzt möchte ich diesen Videogenerator remote über SSH ausführen, aber wenn ich das Programm remote ausführe, schlägt die Fenstererstellung fehl. Ich nehme an, das hat etwas mit X zu tun, vorausgesetzt, ich möchte eine grafische Ausgabe auf dem Computer erhalten, von dem aus ich mich verbinde, oder so etwas in der Art. Ich weiß nicht viel darüber. Ich möchte nur, dass es das Video erstellt, es ist mir egal, ob ich das Fenster sehe. Theoretisch sollte es in der Lage sein, das Fenster auf dem Remotecomputer zu öffnen, wie es immer der Fall ist, wenn ich das Skript lokal ausführe. Sollte ich eine Umgebungsvariable wie DISPLAY festlegen, damit dies remote funktioniert?
Antwort1
Sie müssen die DISPLAY
Variable auf diejenige setzen, auf der die GUI-Sitzung (X, Wayland oder Mir) auf dem Host ausgeführt wird.
Mit dem Befehl können Sie who
sehen, auf welchem Display Ihre GUI-Sitzung ausgeführt wird (vorausgesetzt, Sie sind bereits in einer anderen Sitzung bei der GUI des Remote-Hosts angemeldet).
Eine andere Lösung wäre, VNC oder SPICE für die Verbindung mit dem Remote-Host zu verwenden, um den vollständigen Desktop anzuzeigen.