我想创建一个运行 gnome-shell 环境的 VNC 服务器,与控制台中的默认 UI 相同,与控制台会话分开(以便控制台看不到任何内容)。
我试过vnc4server
和tightvncserver
,但都没用。无论我如何配置xstartup
,gnome-session
都无法运行。我确实设法以同样的方式运行Xfdm
和。当我尝试连接到 VNC 服务器时,我只看到灰屏。但是我可以确认 vnc 服务器正常工作,因为我可以通过设置和gnome-panel
在其中运行程序。DISPLAY
XAUTHORITY
有没有办法ubuntu-desktop
在新的 X 会话中运行,与控制台会话分开?最好在 VNC 服务器上?
我创建 vnc 服务器的步骤:
- 安装全新的 Ubuntu 18.04 LTS 桌面。
- 安装
tightvncserver
。 - 运行
vncserver
配置并终止它。 更改
~/.vnc/xstartup
并附加:导出 STARTUP="/usr/bin/gnome-session --session=ubuntu --disable-acceleration-check" $STARTUP
跑步
vncserver
。- 使用任意 VNC 客户端连接到 VNC 服务器。仅显示灰色屏幕。
- 配置
DISPLAY
并XAUTHORITY
运行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