从 xinetd 启动的 Xvnc4 仅显示空的灰色 X 屏幕

从 xinetd 启动的 Xvnc4 仅显示空的灰色 X 屏幕

我正在尝试设置一个 Ubuntu 10.10 机器,以便任何人都可以连接到端口 5900 并受到 gdm 登录管理器的欢迎。为此,我在 /etc/services 中添加了一个 vnc 条目,并使用以下 xinetd 配置文件启动 Xvnc4:

service vnc
{
  protocol = tcp
  socket_type = stream
  wait = no
  user = nobody
  server = /usr/bin/Xvnc
  server_args = -geometry 1000x700 -depth 24 -broadcast -inetd -once -securitytypes None
}

这种方法可行...我可以启动多个会话,全部到端口 5900,然后我得到一个 X 屏幕。问题是我只得到一个空白的灰色 X 屏幕,没有启动任何应用程序。

我知道当您从命令行运行 vncserver 时,它会在您的 ~/.vnc/ 目录中查找您的密码和 xstartup 文件,我想我要做的是将“gnome-session”放入 xstart 文件中。但是,哪个 xstartup 文件呢?运行用户是“nobody”,他显然没有 ~/.vnc/ 目录。我尝试了 /root/.vnc/xstartup 文件和 ~scott/.vnc/xstartup 文件,但看起来它们甚至没有被读取。

我更改了 xinetd vnc 服务,以便它可以“跟踪”Xvnc4。我查看了所有“打开”的行,但不知道它试图为 xstart 读取什么文件。

有人能帮忙吗?我只想要一个向用户显示 gdm 登录屏幕的终端服务器。

答案1

您需要以要启动其 VNC 会话的用户身份运行它。您可能还需要进行设置$HOME以便它可以找到.vnc目录。尝试以下操作:

service vnc
{
  protocol = tcp
  socket_type = stream
  wait = no
  user = someuser
  server = /usr/bin/env
  server_args = HOME=/home/someuser /usr/bin/Xvnc -geometry 1000x700 -depth 24 -broadcast -inetd -once -securitytypes None
}

您可能还需要其他环境设置;可能source ~/.bash_profilexstartup,并且您可能还需要$USER明确设置。

相关内容