Hi, thanks for your new script, but I didn't get it working:
heikok@pc4027:~$ bash ./vglconnect -s -C -e "vglrun tseries" vglserver1 VirtualGL Client 64-bit v2.4 (Build 20150126) vglclient is already running on this X display and accepting unencrypted connections on port 4242. Making preliminary SSH connection to find a free port on the server ... Bad escape character 'vglrun tseries'. [VGL] ERROR: The server does not appear to have VirtualGL 2.1 or later [VGL] installed. Ah, wait, after a bit of debugging: heikok@pc4027:~$ bash ./vglconnect -s -e "vglrun tseries" -C vglserver1 -s and -e are vglconnect options, -C is an ssh option and will stop any other vglconnect options. Since the order of options is so important, it might be a good idea to add a debug line like Runnging vglconnect with options '-s -e "vglrun tseries"' on ssh command with options '-C vglserver1' My attached version adds these debug-lines. Heiko On 2015-08-15 00:07, DRC wrote: > This already works if you don't use the -s switch to vglconnect. Why > it's failing with -s is that -s causes vglconnect to run vgllogin on the > server, so any additional arguments are interpreted as SSH options > instead of as a remote command. I added a new vglconnect option, per > your suggestion, that allows you to specify a program to run on the server: > > e.g. > vglconnect -s -C -e 'vglrun /opt/VirtualGL/bin/glxspheres64' myserver > > New script is attached. Let me know if it works, and if so, I'll check > it in. > > > On 8/5/15 6:43 AM, DRC wrote: >> I don't think it would be very difficult to add that functionality, >> given that vglconnect is basically just a wrapper for SSH. Let me look >> at it further and get back to you. >> >>> On Aug 5, 2015, at 3:15 AM, Heiko Klein <heiko.kl...@met.no> wrote: >>> >>> Hi, >>> >>> we're currently successfully using vgl to start our applications like: >>> >>> myclient$ vglconnect -s -C myserver >>> myserver$ vglrun glprog >>> >>> >>> We cannot sell our users a program which requires using the >>> command-line, so we need to create a startup button. Thus we need a >>> non-interactive startup of 'vglrun glprog', e.g. (not working!) >>> >>> myclient$ vglconnect -s -C myserver vglrun glprog >>> >>> >>> >>> Does there exist a vgl-program/option which allows starting >>> vglconnect/vglrun from the client-machine? >>> >>> >>> If not, is there some interest to add that functionality, e.g. >>> >>> myclient$ vglconnect -s -C -E 'glprog' myserver >>> >>> >>> (I checked the vglconnect/vgllogins skript and it doesn't seem to hard >>> to add these parameters, so I could volunteer.) >>> >>> >>> Best regards, >>> >>> Heiko > > > > ------------------------------------------------------------------------------ > > > > _______________________________________________ > VirtualGL-Users mailing list > VirtualGL-Users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/virtualgl-users > -- Dr. Heiko Klein Norwegian Meteorological Institute Tel. + 47 22 96 32 58 P.O. Box 43 Blindern http://www.met.no 0313 Oslo NORWAY
#!/bin/sh # Copyright (C)2007 Sun Microsystems, Inc. # Copyright (C)2009-2011, 2014-2015 D. R. Commander # # This library is free software and may be redistributed and/or modified under # the terms of the wxWindows Library License, Version 3.1 or (at your option) # any later version. The full license is in the LICENSE.txt file included # with this distribution. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # wxWindows Library License for more details. maketemp() { umask 077 mktemp /tmp/$1.XXXXXX || exit 1 } VGLTUNNEL=0 X11TUNNEL=1 CONNECT=1 FORCE=0 SSHCMD=ssh usage() { echo echo "USAGE: $0" echo " [vglconnect options] [user@]hostname [Additional SSH options]" echo echo "vglconnect options:" echo "-display <d> = Local X display to use when drawing VirtualGL's images" echo " (default: read from DISPLAY environment variable)" echo "-s = Tunnel VGL Transport and X11 through SSH (default: tunnel only X11)" echo "-e {program} = When using -s, execute {program} on the server after" echo " running vgllogin" echo "-x = Do not tunnel X11 or the VGL Transport, but create an xauth key" echo " and add it to the VirtualGL server's keyring so that the VirtualGL" echo " server (and any that share its home directory) can use this X display" echo "-k = Do not connect to server, but create an xauth key for this X display and" echo " add it to the local keyring so that any VirtualGL servers that share the" echo " same home directory as this machine can use this X display" echo "-g = Use gsissh from Globus Toolkit to make all SSH connections" echo "-force = Force a new vglclient instance (use with caution)" echo "-bindir <d> = Path in which the VGL executables and scripts are installed on" echo " the server machine (default: /opt/VirtualGL/bin). Can also be" echo " set with the VGL_BINDIR environment variable on the client" echo " machine." echo exit $1 } if [ -z $VGL_BINDIR ]; then VGL_BINDIR=/opt/VirtualGL/bin fi OPTIONS="" while [ $# -gt 0 ] do case "$1" in -d*) DISPLAY=$2; OPTIONS="$OPTIONS -d $2"; shift ;; -b*) VGL_BINDIR=$2; OPTIONS="$OPTIONS -b $2";shift ;; -f*) FORCE=1; OPTIONS="$OPTIONS -f" ;; -s*) X11TUNNEL=1; VGLTUNNEL=1; CONNECT=1; OPTIONS="$OPTIONS -s" ;; -x*) X11TUNNEL=0; VGLTUNNEL=0; CONNECT=1; OPTIONS="$OPTIONS -x" ;; -k*) X11TUNNEL=0; VGLTUNNEL=0; CONNECT=0; OPITONS="$OPTIONS -k" ;; -g*) SSHCMD=gsissh; GLOBUS=1; OPTIONS="$OPTIONS -g" ;; -e*) COMMAND=$2; OPTIONS="$OPTIONS -e '$2'"; shift ;; *) break ;; esac shift done echo "Running vglconnect with options '$OPTIONS' on" echo " ssh command with options \'$*\'" if [ $# -eq 0 -a $CONNECT -eq 1 ]; then usage 0 fi if [ "$DISPLAY" = "" ]; then echo "[VGL] ERROR: An X display must be specified, either by using the -display" echo "[VGL] argument to vglconnect or by setting the DISPLAY environment variable" exit 1 fi LOGDIR=$HOME/.vgl if [ ! -d $LOGDIR ]; then mkdir $LOGDIR; fi LOGDISPLAY=`basename $DISPLAY` LOGFILE=$LOGDIR/vglconnect-$HOSTNAME-$LOGDISPLAY.log VGLARGS="-l "$LOGFILE" -d "$DISPLAY" -detach" if [ "$FORCE" = "1" ]; then VGLARGS=$VGLARGS" -force"; fi if [ ! "$VGL_PORT" = "" -a "$__VGL_SSHTUNNEL" = "1" ]; then PORT=$VGL_PORT else VGLCLIENT=`dirname $0`/vglclient if [ ! -x $VGLCLIENT ]; then if [ -x /opt/VirtualGL/bin/vglclient ]; then VGLCLIENT=/opt/VirtualGL/bin/vglclient else VGLCLIENT=vglclient fi fi PORT=`$VGLCLIENT $VGLARGS` if [ $? -ne 0 -o "$PORT" = "" ]; then echo "[VGL] ERROR: vglclient failed to execute." exit 1 fi echo fi if [ $VGLTUNNEL = 1 ]; then echo Making preliminary SSH connection to find a free port on the server ... REMOTEPORT=`$SSHCMD ${1+"$@"} "$VGL_BINDIR/nettest -findport && $VGL_BINDIR/vgllogin -check"` if [ $? -ne 0 -o "$REMOTEPORT" = "" ]; then echo "[VGL] ERROR: The server does not appear to have VirtualGL 2.1 or later" echo "[VGL] installed." exit 1 fi echo Making final SSH connection ... if [ "$COMMAND" != "" ]; then $SSHCMD -t -Y -R$REMOTEPORT:localhost:$PORT ${1+"$@"} <<EOF $VGL_BINDIR/vgllogin -s $REMOTEPORT $COMMAND EOF else $SSHCMD -t -Y -R$REMOTEPORT:localhost:$PORT ${1+"$@"} "$VGL_BINDIR/vgllogin -s "$REMOTEPORT fi exit 0 fi if [ $X11TUNNEL = 1 ]; then $SSHCMD -Y ${1+"$@"} exit 0 fi XAUTH=xauth if [ -x /usr/X11R6/bin/xauth ]; then XAUTH=/usr/X11R6/bin/xauth else if [ -x /usr/openwin/bin/xauth ]; then XAUTH=/usr/openwin/bin/xauth fi fi XAUTHFILE=`maketemp vglconnect` $XAUTH -f $XAUTHFILE generate $DISPLAY . trusted timeout 0 if [ $? -ne 0 ]; then echo "[VGL] ERROR: Could not generate xauth key, possibly because the X server does" echo "[VGL] not have the SECURITY extension or because the xauth command could " echo "[VGL] not be found." rm -f $XAUTHFILE exit 1 fi XAUTHCOOKIE=`$XAUTH -f $XAUTHFILE list | sed "s/.*[ ]//g"` rm -f $XAUTHFILE if [ "$CONNECT" = "1" ]; then $SSHCMD -t -x ${1+"$@"} "exec $VGL_BINDIR/vgllogin -x "$DISPLAY" "$XAUTHCOOKIE else DNUM=`echo $DISPLAY | sed 's/.*[:]//g'` xauth add `hostname`":"$DNUM . $XAUTHCOOKIE fi
------------------------------------------------------------------------------
_______________________________________________ VirtualGL-Users mailing list VirtualGL-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/virtualgl-users