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

  • Fährnisse des Buildprozesses unter Windows

    17.07.2019

    Nachdem ich begonnen hatte, mich mit der Beschleunigung der Berechnung des Mandelbrot-Fraktals unter Zuhilfenahme der Shadereinheiten in Graphikkarten zu beschäftigen und erste Erfolge feiern konnte, wollte ich das mal auf einer richtigen Graphikkarte ausprobieren...

    Weiterlesen...

Neueste Artikel

  • Datenvalidierung UTF8 mit BiDi-Steuerzeichen (TrojanSource 2.0)

    Ich bin heute nochmal inspiriert worden, weiter über die Trojan Source Vulnerability nachzudenken. Meiner Meinung nach bestehen hier noch Probleme - speziell bei Nutzereingaben oder Daten, die über externe Schnittstellen ampfangen werden.

    Weiterlesen...
  • OpenStreetMap Navi als Docker-Container

    Ich habe die auf OpenStreetMap basierende OpenSource Navigationslösung Graphhopper in einen Docker-Container gepackt und als neuestes Mitglied in meinem Docker-Zoo willkommen geheißen.

    Weiterlesen...
  • SQL-Aggregatfunktionen in SQLite als BeanShell-Scripts

    Ich habe neulich über eine Möglichkeit berichtet, SQLite mittels der sQLshell und Beanshell-Skripten um SQL-Funktionen zu erweitern. In diesem Artikel versprach ich auch, über eine solche Möglichkeit für Aggregatfunktionen zu berichten.

    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.