通过创建新会话在 Ubuntu Desktop 18.04 上运行 VNC 服务器

通过创建新会话在 Ubuntu Desktop 18.04 上运行 VNC 服务器

我想创建一个运行 gnome-shell 环境的 VNC 服务器,与控制台中的默认 UI 相同,与控制台会话分开(以便控制台看不到任何内容)。

我试过vnc4servertightvncserver,但都没用。无论我如何配置xstartupgnome-session都无法运行。我确实设法以同样的方式运行Xfdm和。当我尝试连接到 VNC 服务器时,我只看到灰屏。但是我可以确认 vnc 服务器正常工作,因为我可以通过设置和gnome-panel在其中运行程序。DISPLAYXAUTHORITY

有没有办法ubuntu-desktop在新的 X 会话中运行,与控制台会话分开?最好在 VNC 服务器上?

我创建 vnc 服务器的步骤:

  1. 安装全新的 Ubuntu 18.04 LTS 桌面。
  2. 安装tightvncserver
  3. 运行vncserver配置并终止它。
  4. 更改~/.vnc/xstartup并附加:

    导出 STARTUP="/usr/bin/gnome-session --session=ubuntu --disable-acceleration-check" $STARTUP

  5. 跑步vncserver

  6. 使用任意 VNC 客户端连接到 VNC 服务器。仅显示灰色屏幕。
  7. 配置DISPLAYXAUTHORITY运行gedit。VNC 会话会看到一个不完整的gedit窗口。

答案1

最后我找到了解决办法。

Gnome 会话似乎无法在 VNC X 服务器上工作,但 Xvfb 可以工作。想法是为会话创建一个 Xvfb,并使用 x11vnc 进行 VNC:

Xvfb :1 -screen 0 1280x720x24

然后生成 GNOME 环境:

DISPLAY=:1 gnome-shell --replace

最后使用x11vnc为 Xvfb 创建 VNC 服务器:

x11vnc -display :1

答案2

确保在脚本开头取消设置 DBUS_SESSION_BUS_ADDRESS xstartup

这是我的一个片段,其中 gnome-session 已正确启动。但是,到目前为止唯一的问题是终端的配色方案未正确应用,但 VNC 运行良好 :)

#!/bin/sh
MODE="GNOME"
unset DBUS_SESSION_BUS_ADDRESS
if [ -e "$HOME/.Xresources" ]
then
    xrdb "$HOME/.Xresources"
fi

if [ "GNOME" = "$MODE" ]
then
    if which gnome-session > /dev/null
    then
        gnome-session --session=ubuntu &
    else
        MODE=""
    fi
fi

相关内容