利用VNC操控另一不带显示屏的电脑


我另有一台老的电脑。没有那么多显示器,这时我想到了用VNC来操控它。该电脑上有Win XP和Redhat 9操作系统。Windows上VNC安装使用 很容易。为了让Linux上的VNC能用起来,费了一番工夫。

没有显示器交互,必须让Linux(图形界面)在启动和关闭时及程序启动都能自动完成。在/etc/inittab中改动:
/etc/inittab:
id:5:initdefault:
     ......
 x:5:once:/bin/su root -l -c "/bin/bash --login -c startx >/dev/null 2>/dev/null"
 

避免输入用户口令: passwd -d root 删除密码。

关机断电:在/boot/grub/grub.conf文件中 'LABEL=/ ' 后加apm=on apm=power-off。

在/etc/init.d/下添加z_vncserver脚本,让VNC server开机自动启动:
/etc/init.d/z_vncserver:
#!/bin/bash
# vncserver   This shell script takes care of starting and stopping
#             (realvnc) vncserver.
#
# chkconfig: 5 80 20
# description: not yet.
#

. /etc/rc.d/init.d/functions

[ -x /usr/working3/realvnc/vnc-4_1_3-x86_linux/vncserver ] || exit 0

RETVAL=0
prog="vncserver"

export PATH=$PATH:/usr/working3/realvnc/vnc-4_1_3-x86_linux/ 
export HOME=/root

start() {
   echo "---------starting realvnc vncserver------------------------"
   vncserver
   return $RETVAL
   
}

stop() {
   echo "---------ending realvnc vncserver------------------------"
   vncserver -kill :1
   return $RETVAL
}


# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        stop
        start
        RETVAL=$?
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 1
esac

exit $RETVAL
    
 

上面我使用的是realvnc的VNC server。它缺省提供到Linux的display:1的连接。但它不能提供共享Linux的display:0,即 我们通常登录到的桌面。

要共享桌面需另外使用x11vnc。为此需先用vnc客户端连接到到display:1后,再从该界面手动启动x11vnc。我写了个脚本:
/root/x11vnc.sh:
#!/bin/bash
/usr/working3/x11vnc/z11vnc-0.9.13/x11vnc/x11vnc -display:0
 

启动x11vnc在display:0的服务后,这时可以用vnc客户端再连接到到display:0,看到的是熟悉的桌面。

(realvnc配置在/root/.vnc下,关闭用命令 vncserver -kill:1 (display:1))。

VNC是个好东西。



Powered by