VNC Server in Virtual Mode does not start correctly on Ubuntu 12.04

针对Ubuntu 12.04环境下使用默认设置安装VNC Server后,在虚拟模式下无法正确启动桌面的问题,提供了解决方案。通过创建并配置特定的xstartup文件,可以解决桌面组件无法正常显示的问题。

http://kb.realvnc.com/questions/196/VNC+Server+in+Virtual+Mode+does+not+start+correctly+on+Ubuntu+12.04


Using the default settings on a 4.6.3 install on Ubuntu 12.04, the desktop is not started properly when VNC Server in Virtual Mode  is launched.  A user connecting to VNC Server in Virtual Mode will see a backdrop and the VNC Server status window (without a title), but will not see any other desktop features such as toolbars or launcher.

The xstartup file should be created/modified as per below:

--------------------------------------------------

#!/bin/sh

# VNC Server (Virtual-Mode) start-up script compatible with Ubuntu 12.04

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey

vncconfig -iconic &

if [ -f /usr/bin/gnome-session ]; then
  # Some gnome session types won't work with Xvnc, try to pick a sensible
  # default.
  for SESSION in "ubuntu-2d" "2d-gnome"; do
    if [ -f /usr/share/gnome-session/sessions/$SESSION.session ]; then
      DESKTOP_SESSION=$SESSION; export DESKTOP_SESSION
      GDMSESSION=$SESSION; export GDMSESSION
      STARTUP="/usr/bin/gnome-session --session=$SESSION"; export STARTUP
    fi
  done
fi

if   [ -x /etc/X11/Xsession ]; then /etc/X11/Xsession
elif [ -x /etc/X11/xdm/Xsession ]; then /etc/X11/xdm/Xsession
elif [ -x /etc/X11/xinit/Xsession ]; then /etc/X11/xinit/Xsession
elif [ -x /etc/gdm/Xsession ]; then /etc/gdm/Xsession gnome-session
elif [ -x /etc/kde/kdm/Xsession ]; then /etc/kde/kdm/Xsession
elif [ -x /usr/dt/bin/Xsession ]; then
  XSTATION=1 DTXSERVERLOCATION=local /usr/dt/bin/Xsession
elif [ -x /usr/dt/bin/dtsession ]; then /usr/dt/bin/dtsession
else
  if which twm > /dev/null 2>&1; then
    xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
    twm
  else
    xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop"
  fi
fi

vncserver -kill $DISPLAY

--------------------------------------------------

Creating this file in ~/.vnc/xstartup and making the file executable should resolve the issue by launching a Unity session for VNC Server in Virtual Mode.  Alternatively, it can be copied to /etc/vnc/xstartup.custom and made executable to make it a system-wide default.

<think>好的,我现在需要帮助用户理解VNC Server的不同模式(Virtual Mode、Service Mode、User Mode)的启动命令及其与PuTTY的关系。首先,我应该先回忆VNC的基本知识,然后结合用户提供的引用内容来分析。 用户提到的引用[1]和[2]都与VNC的配置和连接有关。引用[2]中提到了在Oracle用户下执行vncserver命令启动服务,并连接到客户端。这可能涉及到User Mode,因为是以特定用户身份启动的。而Service Mode可能是指作为系统服务运行,比如通过systemctl命令管理。Virtual Mode可能指的是创建多个虚拟桌面,每个桌面用不同的显示端口,例如:1、:2等。 接下来,需要明确每个模式的具体启动命令。例如,User Mode可能直接用vncserver命令启动,而Service Mode可能使用systemctl start vncserver@:1这样的命令。Virtual Mode可能需要配置不同的显示端口,并分配虚拟桌面。 关于与PuTTY的关系,PuTTY是一个SSH客户端,通常用于远程命令行访问。用户可能在使用VNC之前通过PuTTY连接到服务器,然后启动VNC服务。因此,PuTTY和VNC是互补的,前者提供命令行访问,后者提供图形界面。 需要确保回答的结构清晰,分点解释每个模式的定义、启动命令及示例,并说明与PuTTY的关联。同时,根据用户提供的引用,可能需要引用[2]中的配置步骤作为例子。 最后,生成相关问题,帮助用户进一步理解,比如如何配置不同模式,或者如何通过PuTTY优化VNC连接等。确保回答符合格式要求,使用中文,正确应用LaTeX语法,并在引用处添加标识。</think>### VNC Server模式解析及与PuTTY的关系 #### 一、VNC Server的三种模式定义 1. **User Mode(用户模式)** 以普通用户身份启动VNC服务,每个用户独立管理自己的VNC会话,默认创建虚拟桌面(如`:1`, `:2`等)。 **启动命令示例**: ```bash vncserver :1 -geometry 1920x1080 # 指定显示编号和分辨率 ``` 引用[2]中`oracle`用户执行`vncserver`即属于此模式[^2]。 2. **Service Mode(服务模式)** 以系统服务形式运行,需管理员权限配置,通常用于多用户共享或长期运行的图形服务。 **启动命令示例**(以systemd为例): ```bash systemctl start vncserver@:1.service # 启动编号为:1的VNC服务 ``` 3. **Virtual Mode(虚拟模式)** 通过虚拟化技术创建多个独立桌面环境,常用于云平台或容器化场景。 **启动命令示例**(需配合虚拟化工具如Xvfb): ```bash Xvfb :99 -screen 0 1280x720x16 & # 创建虚拟显示设备:99 export DISPLAY=:99 && startxfce4 # 在虚拟显示中启动桌面环境 ``` --- #### 二、与PuTTY的关联性 1. **互补功能** - **PuTTY**:基于SSH协议提供**命令行远程访问**,常用于服务器运维(如执行`vncserver`命令)。 - **VNC**:基于RFB协议提供**图形界面远程访问**,需先通过SSH建立安全隧道或独立端口连接。 2. **典型协作流程** ```mermaid graph LR A[PuTTY连接服务器] --> B[执行vncserver启动命令] B --> C[获取VNC端口号:1] C --> D[VNC客户端连接IP:1] ``` 引用[2]中通过PuTTY登录后执行`vncserver`即为此场景[^2]。 --- #### 三、模式对比表格 | 特性 | User Mode | Service Mode | Virtual Mode | |---------------|-----------------|-----------------|-----------------| | 权限 | 普通用户 | 系统管理员 | 依赖虚拟化工具 | | 会话生命周期 | 用户登出后终止 | 系统重启后保持 | 按需创建/销毁 | | 典型应用场景 | 临时图形操作 | 长期运行服务 | 自动化测试环境 | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值