Mac OS X - X11.app: Programme per Menü aufrufen

Aus Knowledgebase
Version vom 20. November 2010, 23:58 Uhr von PoC (Diskussion | Beiträge) (→‎Weblinks: Kat Replace)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Die X11.app unter Mac OS X hat ein Programme-Menü. Hier ein Beispiel, wie dieses Menü auch ferne X11-Programme starten kann.

Der Mac mit X11.app ist der Server, der ferne Rechner, der die zu startenden Programme beherbergt, ist der Client ist. Diese scheinbar vertauschte Semantik spiegelt die Rollen aus Protokollsicht wieder: Der Server bietet Grafikausgabedienste an, während der Client diesen Server für seine grafische Ausgabe nutzt.

Voraussetzungen

Voraussetzungen sind ein laufender rsh-Server sowie eine ~/.rhosts-Datei auf dem Client, sowie ein rsh-Kommando auf dem Server. In der ~/.rhosts muss der Hostname oder die IP-Adresse des Servers drin stehen. Die Benutzernamen müssen auf beiden Maschinen übereinstimmen. Funktionsprüfung geht recht einfach mit

rsh client who

Das sollte eine Ausgabe der momentan auf dem Client eingeloggten Benutzer erzeugen.

Die X11.app muss in den Einstellungen im Reiter Sicherheit beide Checkboxen eingeschaltet haben (Verbindungen identifizieren, Verbindungen von Netzwerk-Clients erlauben). Änderungen werden erst nach einem Neustart von X11.app wirksam!

Programmaufruf

In einem xterm auf dem Server muss folgendes Kommando nach ein paar Sekunden ein Xload-Fenster vom Client öffnen:

/usr/X11/bin/xauth list |fgrep server:0 |echo "add `cat`" |rsh client \
   "/usr/bin/xauth; export DISPLAY=server:0; /usr/bin/xload -update 2 -jumpscroll 1"

Dieser Aufruf kann als Einzeiler damit auch als Befehlszeile im Programme-Menü eingetragen werden.

Erläuterung

  • xauth gibt einen Authentifizierungsstring zurück,
  • über den rsh-Aufruf zum Client wird dieser Authstring der Datenbank auf dem Client hinzugefügt (add `cat` → Stdin dem add-Kommando von xauth verfüttern),
  • DISPLAY ist die Variable, die den Clients sagt, wohin sie ihre Ausgabe leiten sollen,
  • danach wird das eigentliche Programm gestartet.

Wozu das ganze Brimborium? Klar, ein

xhost +client

würde auch reichen. Schaltet dann aber den ganzen Host für Verbindungen frei und jeder könnte von dort aus den Server zumüllen.

Weblinks

  • X11 in der deutschsprachigen Wikipedia