home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / root / usr / lib / YaST2 / startup / common / vnc.sh < prev   
Linux/UNIX/POSIX Shell Script  |  2006-11-29  |  3KB  |  97 lines

  1. #!/bin/sh
  2. #================
  3. # FILE          : vnc.sh
  4. #----------------
  5. # PROJECT       : YaST (Yet another Setup Tool v2)
  6. # COPYRIGHT     : (c) 2004 SUSE Linux AG, Germany. All rights reserved
  7. #               :
  8. # AUTHORS       : Marcus Schaefer <ms@suse.de> 
  9. #               :
  10. #               :
  11. # BELONGS TO    : System installation and Administration
  12. #               :
  13. # DESCRIPTION   : VNC helper functions to start the Xvnc server
  14. #               :
  15. #               :
  16. # STATUS        : $Id: vnc.sh 34570 2006-11-22 17:53:31Z ms $
  17. #----------------
  18.  
  19. . /etc/YaST2/XVersion
  20.  
  21. #----[ setupVNCAuthentication ]------#
  22. function setupVNCAuthentication () {
  23. #---------------------------------------------------
  24. # handle the VNCPassword variable to create a valid
  25. # password file.
  26. #
  27.     VNCPASS_EXCEPTION=0
  28.     VNCPASS=$Xbindir/vncpasswd.arg
  29.     if [ ! -e /root/.vnc/passwd ]; then
  30.         rm -rf /root/.vnc && mkdir -p /root/.vnc
  31.         $VNCPASS /root/.vnc/passwd "$VNCPassword"
  32.         if [ $? = 0 ];then
  33.             chmod 600 /root/.vnc/passwd
  34.         else
  35.             log "\tcouldn't create VNC password file..."
  36.             VNCPASS_EXCEPTION=1
  37.         fi
  38.     fi
  39. }
  40.  
  41. #----[ startVNCServer ]------#
  42. function startVNCServer () {
  43. #---------------------------------------------------
  44. # start Xvnc server and write a log file from the
  45. # VNC server process
  46. #
  47.     # .../
  48.     # The IP set in install.inf may not be valid if the DHCP server
  49.     # gave us a different lease in the meantime (#43974).
  50.     # sed: don't print; if it's localhost, skip; try locating IPv4;
  51.     #      skip if not found; otherwise print and exit
  52.     # ----
  53.     IP=`ip addr list | sed -n \
  54.         -e '/127.0.0.1/b;s/^[[:space:]]*inet[[:space:]]\([^/]*\).*/\1/;T;p;q'`
  55.  
  56.     echo
  57.     echo starting VNC server...
  58.     echo A log file will be written to: /var/log/YaST2/vncserver.log ...
  59.     cat <<-EOF
  60.     
  61.     ***
  62.     ***           You can connect to $IP, display :1 now with vncviewer
  63.     ***           Or use a Java capable browser on  http://$IP:5801/
  64.     ***
  65.     
  66.     (When YaST2 is finished, close your VNC viewer and return to this window.)
  67.     
  68.     EOF
  69.     #==========================================
  70.     # Fake hostname to make VNC screen pretty
  71.     #------------------------------------------
  72.     if [ "$(hostname)" = "(none)" ] ; then
  73.         hostname $IP
  74.     fi
  75.     #==========================================
  76.     # store hostname for use in desktop option
  77.     #------------------------------------------
  78.     VNC_HOSTNAME=`hostname`
  79.     #==========================================
  80.     # Start Xvnc...
  81.     #------------------------------------------
  82.     $Xbindir/Xvnc $Xvncparam :0 \
  83.         -rfbauth /root/.vnc/passwd \
  84.         -desktop "Installation at: $VNC_HOSTNAME" \
  85.         -geometry 800x600 \
  86.         -depth 16 \
  87.         -rfbwait 120000 \
  88.         -httpd /usr/share/vnc/classes \
  89.         -rfbport 5901 \
  90.         -httpport 5801 \
  91.         -fp $Xfontdir/misc/,$Xfontdir/uni/,$Xfontdir/truetype/ \
  92.     &> /var/log/YaST2/vncserver.log &
  93.     xserver_pid=$!
  94.     export DISPLAY=:0
  95.     export XCURSOR_CORE=1
  96. }
  97.