screen for X

vorhergehende Artikel in: Linux
24.08.2013

Viele haben sich - wie ich - gefragt: "Warum gibt es so etwas geniales wie (gnu-)screen nicht für X?" Mancher von denen, die sich diese Frage gestellt haben, haben sie vielleicht bereits beantwortet - nun habe auch ich herausgefunden, daß es so etwas gibt: xapr heißt das Werkzeug, das genau das ist: screen for X!

Ich gebe zu: die Überschrift wird nur Eingeweihten etwas sagen - denen dafür um so mehr. Das Werkzeug (gnu-)screen dient dazu, auf der Kommandozeile Prozesse zu starten, die man nicht beenden muß, wenn man sich von Linux abmeldet. Gleiche oder ähnliche Werkzeuge gibt es natürlich auch für die anderen Unix-artigen Betriebssysteme...

Man kann sich also vorstellen, daß man an einem Rechner sitzt und dort einen längeren Prozeß - eine Berechnung oder einen Up- oder Download startet. Man möchte nun nicht dort sitzenbleiben, bis der Rechner damit fertig ist. Geht man aber weg, möchte man sich abmelden, damit niemand unter dem eigenen Nutzernamen Schabernack treiben möchte. Eine Möglichkeit, den Prozeß weiterlaufen zu lassen, ist der Start des Prozesses mittels "nohup", das dafür sorgt, daß ein gestarteter Prozeß auch nach der Abmeldung weiterläuft - eben "No Hang Up".

Eleganter ist die Benutzung von Screen - damit wird nämlich nicht nur der Prozeß zu Ende geführt, sondern es besteht die Möglichkeit, die Sitzung dort wieder aufzunehmen, wo man sie verlassen hat. Ein Beispiel ist das Aktualisieren der Distribution: mittels screen ein apt-get update starten - Download beginnt. Anschließend abmelden. Später - zum Beispiel vom Smartphone aus - erneut anmelden und Sitzung wieder aufnehmen: Update-Prozeß ist angehalten, weil apt eine Nutzerentscheidung benötigt. Diese kann man jetzt geben und das Update wird fortgeführt.

Wäre es nicht schön, wenn das auch für graphische Anwendungen funktionieren würde? Man startet eine Anwendung an Rechner A und kann die Anwendung sozusagen auf Rechner B weiterbedienen - ohne Speichern des Zustandes, Beenden, Neustarten und Laden des Zustandes? Das würde auch ganz neue Möglichkeiten der Anwenderunterstützung durch Hotline-Betreuer eröffnen...

Sogenannte Nested Server wie etwa Xephyr oder Xnest können dies leider auch nicht leisten.

Nunmehr habe ich eine Lösung dafür gefunden: Xapr. Diese Anwendung wird auf dem Rechner installiert, auf dem die Anwendung laufen soll und auf allen, von denen die Anwendung gesteuert werden soll.

Anschließend ist xpra zu starten:

xpra start :7

Die 7 ist dabei die Display-Nummer. Sie ist frei wählbar, so lange ein Display mit der gleichen Nummer nicht bereits existiert. Ich schlage als ersten Test im Zusammenhang mit X immer xeyes vor:

DISPLAY=:7 xeyes &

Das erwartete Fenster erscheint nicht - weil wir uns noch nicht mit der Sitzung verbunden haben:

xpra attach :7

Nunmehr erscheinen die großen Augen... gibt man im Terminal nunmehr Strg-C ein, so wird die Verbindung beendet - nicht aber die Sitzung und auch nicht xeyes: ein erneutes attach lässt das Fenster wieder erscheinen. Die Sitzung wird mittels

xpra stop :7

beendet. Damit hat man zunächst die prinzipielle Funktionstüchtigkeit nachgewiesen. Aber der Spaß beginnt erst, wenn man eine lokal gestartete GUI-Anwendung auf einem anderen Rechner weiterbearbeiten kann. Die in der offiziellen Dokumentation genannte Variante

xpra attach ssh:serverhostname:7

hat bei mir leider nicht funktioniert - ich mußte Zuflucht zu

ssh -XC user@serverhostname xpra attach :7

nehmen. Ansonsten muß ich zusammenfassend sagen, daß dieses Vorgehen für den Alltagsbetrieb tauglich ist - Ich betreibe inzwischen solche graphischen Schwergewichte wie Netbeans und Android-Studio mit Hilfe von XPRA und bin sehr zufrieden - sogar über 54-MBit-WLAN kann man mit diesen Anwendungen arbeiten. Normales Remote-X ist da ja schon eher eine Foltermethode.

Ressourcen

Artikel, die hierher verlinken

Alte Rechner zukunftsfähig (?)

01.05.2019

Ich mache immer wieder gerne Experimente mit Terminalsessions - meistens wegen der zentral möglichen Administration. Nunhabe ich das Thema von neuem angepackt: wegen einem alten(sehr alten) Laptop, der bei mir schon so lange im Schrank lag, dass sogar die BIOS-Batterie inzwischen leer war...

Xpra und Xephyr mit OpenBox a la SysV init

01.05.2019

Ich habe ein Script geschrieben, das xpra startet und - a la SysV init - stoppt. Es erledigt auch gleich den Start von Xephyr mit OpenBox als Window Manager.

screen for X mit Synology-NAS

22.05.2015

Nachdem ich jetzt X-Anwendungen auf meinem Synology-NAS zur Ausführung bringen kann, habe ich das Thema noch weiter verfolgt: Man kann das System mit Screen für X kombinieren!

Alle Artikel rss Wochenübersicht Monatsübersicht Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • AtomicInteger vs. Integer

    24.03.2019

    Ich habe am Wochenende wieder einmal mit Java-Benchmarks experimentiert

    Weiterlesen...

Neueste Artikel

  • Konstruktive Geometrie mit dem Computer

    Ich habe in einem vorhergehenden Artikel beschrieben, dass ich eine weitere neue Graphik-Primitive erstellt habe. Dabei musste ich mir meine verschütteten Trigonometrie-Kenntnisse wieder vor Augen führen - mit Bleistift und Papier. Das müsste doch auch anders gehen dachte ich mir und begann...

    Weiterlesen...
  • GitHub-Projekte

    Mal abgesehen von den anderen Links, die ich in unregelmäßigen Intervallen hier poste kommt heute ein Schwung (aus meiner Sicht) interessanter/skurriler Projekte auf GitHub:

    Weiterlesen...
  • Mehrere Datenbanken und Postgis-Erweiterung in Docker

    Ich hatte ja schon beschrieben, dass ich mich in diesem Jahr wieder intensiver um mein Geoinformationssystem EBMap4D kümmern möchte. Dazu habe ich jetzt einige infrastrukturelle Vorbereitungen getroffen...

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.