1台のコンピューターから2台のVNCServerを実行したいと思います。 xstartupで指定されたスタートアップコマンドを実行したいのですが、別のコマンドで別のコマンドを実行したいのです。これはどのように行うことができますか?ありがとう。
別のxstartupファイルを直接実行することはできませんが、実際にはシェルスクリプトであるため、最初のVNCセッションか2番目の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 &
私は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でアクセス可能な新しいセッションが作成されます:)