我想在我的其中一台计算机上运行 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 上访问的新会话:)