在 Ubuntu 上将不同的 xstartup 文件与 VNCServer 结合使用

在 Ubuntu 上将不同的 xstartup 文件与 VNCServer 结合使用

我想在我的其中一台计算机上运行 2 个 VNCServer。我希望其中一个运行 xstartup 中指定的启动命令,但我希望另一个执行不同的命令。该怎么做?谢谢。

答案1

您不能直接执行不同的 xstartup 文件,但由于它实际上只是一个 shell 脚本,您可以通过构建脚本逻辑来确定它是第一个还是第二个 VNC 会话来实现这一点。

例如:

#!/bin/sh

# switch on display number for special sessions
[ $DISPLAY == ":1" ] && exec startupOne
[ $DISPLAY == ":2" ] && exec startupTwo

# ... else use the normal vnc xstartup

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

答案2

我对使用 bash 脚本还不熟悉,但我确实有非常类似的要求。一般来说,在 iPad 上工作时,我想要一个轻量级的 XCFE,但在 LAN 上,我想要一个完整的 gnome 桌面。

我通过创建 2 个额外的 xstartup 文件 xstartup1 和 xstartup 然后在运行时复制 xstartup 文件来解决这个问题。

示例脚本...

#!/bin/sh
vncserver -kill :2
vncserver -kill :1
cp xstartup1 xstartup
vncserver
cp xstartup2 xstartup
vncserver

如果有的话,这应该会终止旧会话,然后创建可在 5901 和 5902 上访问的新会话:)

相关内容