GästebuchIhr Eintrag in unser Gästebuch KontaktNehmen Sie Kontakt mit den Autoren auf ArchivAlle Unixwerk- Artikel seit 2003
15. März 2013

MiniTipp: Zugriff auf den AIX-Desktop mit VNC

Inhalt

  1. Einleitung
  2. VNC installieren
  3. Desktop konfigurieren
  4. VNC starten
  5. Mit dem VNC-Server verbinden

 

1. Einleitung

Das Common Desktop Environment ist die Arbeitsumgebung, die einmal der moderne, einheitliche Desktop für alle Unix-Varianten werden sollte. Bei AIX wird dieser Desktop immer noch als Standard mitgeliefert - doch arbeitet eigentlich noch jemand mit dem Common Desktop Environment?

Der Autor dieser Zeilen gesteht, dass er diesem Desktops nachwievor etwas abgewinnen kann. Da ich, wie wohl auch sonst kaum jemand, nicht direkt hinter einer AIX-Workstation sitze, muss ich mir das geliebte CDE von meiner AIX-Station über VNC auf meinen Windows- oder Linux-Desktop holen. Wie das geht, davon soll dieser kleine Artikel handeln.

 

2. VNC installieren

Das Paket «vncserver-3.3.3r2-6.aix5.1.ppc.rpm» findet sich auf der Toolbox-CD für AIX. Es wird mit

# rpm -ihv vncserver-3.3.3r2-6.aix5.1.ppc.rpm

installiert.

 

3. Desktop konfigurieren

Beim Start sucht der vncserver im Heimatverzeichnis des Benutzers im Verzeichnis .vnc die Datei xstartup. In dieser Datei werden die Programme zum Desktop-Start verankert. Für CDE könnte die Datei etwa so aussehen:

$ mkdir ~/.vnc
$ vi ~/.vnc/xstartup
#!/bin/sh
export PATH=$PATH:/usr/dt/bin
xrdb $HOME/.Xresources
xsetroot -solid grey
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
DISPNUM=`echo $VNCDESKTOP | cut -d- -f3`
export DISPLAY=localhost:$DISPNUM
dtsession &

Im Beispiel wird ein xterm gestartet, die Hintergrundfarbe gesetzt, Pfad und Display-Variable gesetzt sowie die X-Defaults eingelesen. Mit der letzten Zeile wird dann schließlich der CDE-Desktop gestartet.

 

4. VNC starten

Der VNC-Server sollte nicht als root gestartet werden, sondern von dem Benutzer, der tatsächlich damit arbeiten möchte:

$ vncserver :1 -name Mein-VNC-Desk-1 -geometry 1456x864 -depth 15

Beim ersten Start fragt der VNC-Server nach einem Passwort. Das Passwort wird in der Datei ~/.vnc/passwd verschlüsselt gespeichert.

Soll der VNC-Server beim Systemstart automatisch gestartet werden, soll er natürlich auch unter dem richtigen Benutzer laufen. Dazu könnte man folgendes unter /etc/rc.d/init.d verankern:

# vi /etc/rc.d/init.d/vncserver
#!/bin/ksh

##################################################
# name: vncserver
# purpose: script that will start or stop 2 vnc instances
##################################################

export PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/dt/bin:/usr/bin/X11:/sbin:/usr/java14/jre/bin:/usr/java14/bin:/usr/vac/bin:/usr/local/bin

echo $(date):$1 >> /tmp/vncserver.log

case "$1" in

  start)
    echo /usr/bin/X11/vncserver :1 -name X-barney-1 -geometry 1456x864 -depth 15   >> /tmp/vncserver1.log 2>&1
    su - barney -p -c /usr/bin/X11/vncserver :1 -name X-barney-1 -geometry 1456x864 -depth 15   >> /tmp/vncserver1.log 2>&1
    sleep 3
    echo /usr/bin/X11/vncserver :2 -name X-betty-2 -geometry 1600x1172 -depth 15  >> /tmp/vncserver2.log 2>&1
    su - betty -p -c /usr/bin/X11/vncserver :2 -name X-betty-2 -geometry 1600x1172 -depth 15  >> /tmp/vncserver2.log 2>&1
    ;;

  stop)
    su - barney -p -c /usr/bin/X11/vncserver -kill :1 >> /tmp/vncserver1.log 2>&1
    su - betty -p -c /usr/bin/X11/vncserver -kill :2 >> /tmp/vncserver1.log 2>&1
    ;;

  *)
    echo " Usage: $0 { start | stop }"
    exit 1
    ;;

esac

Im Beispiel werden 2 VNC-Server unter zwei verschiedenen Benutzern (barney und betty) gestartet. Man beachte, dass der jeweilige VNC-Server auch nur vom richtigen Benutzer wieder beendet werden kann. Damit das Skript beim Systemstart auch ausgeführt wird, setzen wir Ausführungsrechte und verlinken es in den Standard-Runlevel von AIX:

# chmod +x /etc/rc.d/init.d/vncserver
# cd /etc/rc.d/rc2.d
# ln -s ../init.d/vncserver Svncserver

 

5. Mit dem VNC-Server verbinden

[VNC Dialog]

 

unter Windows:
Unter Windows kann man den VNC Viewer von RealVNC installieren. Die VNC-Server lauschen auf Port 5900+DISPLAY. In unserem Beispiel lauscht Barneys VNC also auf dem Port 5901 und Bettys auf Port 5902. Dieser Port muss im VNC Viewer entsprechend angegeben werden (s. nebenstehende Abbildung).

unter Linux:
Unter Linux kann man z.B. tightvnc benutzen. Die Verbindung lässt sich dann bequem über die Kommandozeile herstellen. Auch hier müssen natürlich die Ports 5901 bzw. 5902 angegeben werden.

Barney startet seinen Viewer mit

barney@tux$ vncviewer -depth 15 -noshared -user barney 111.11.11.11::5901 &

und Betty startet ihren mit

betty@tux$ vncviewer -depth 15 -noshared -user betty 111.11.11.11::5902 &

Diese Variante ist natürlich nicht auf Linux beschränkt, sondern funktioniert auch mit anderen Unices, sofern tightvnc installiert ist.