ToolTalk User's Guide

Environment Variables Required to Start Programs on Remote Hosts

The start string is always executed on the host on which ttsession is running; however, the executed process can start another process on another host.

To do this, first make your start string be similar to the following:


# rsh farhost myprog

Next, to make sure myprog is placed in the right session and receives its initial message, you need to propagate the important ToolTalk environment variables. The ttrsh shell script shown in Example 4–1 propagates these environment variables.


Example 4–1 Propagating ToolTalk Environment Variables

#! /bin/sh
# Runs a command remotely in background, by pointing stdout and stderr 
# at /dev/null. By running this through the Bourne shell at the other end, 
# we get rid of the rsh and rshd.
#set -x
user=
debug=
HOST=${HOST-`hostname`}
if [ "$1" = "-debug" ]; then
	debug=1
	shift
fi
if [ $# -lt 2 -o "$1" = "-h" -o "$1" = "-help" ]; 
then
	echo "Usage: ttrsh [-debug] remotehost [-l username] \
remotecommand"
	echo "Usage: ttrsh [-h | -help]"
	exit 1
else
	host=$1
	shift
	if test "$1" = "-l" ; then
		shift
		user=$1
		shift
	fi
fi
xhostname=`expr "$DISPLAY" : "\([^:]*\).*"`
xscreen=`expr "$DISPLAY" : "[^:]*\(.*\)"`
if test x$xscreen = x; then
	xscreen=":0.0"
fi
if test x$xhostname = x -o x$xhostname = x"unix";
then
	DISPLAY=$HOST$xscreen
fi
if [ "$user" = "" ]; then
	userOption=""
else
	userOption="-l $user"
fi
if [ $debug ]; then
	outputRedirect=
else
	outputRedirect='> /dev/null 2>&1 &'
fi
(
	echo "OPENWINHOME=$OPENWINHOME;export OPENWINHOME;\
TT_SESSION=$TT_SESSION;export TT_SESSION;\
TT_TOKEN=$TT_TOKEN;export TT_TOKEN;TT_FILE=$TT_FILE;\
export TT_FILE;DISPLAY=$DISPLAY;export DISPLAY;($*)" \
$outputRedirect | rsh $host $userOption /bin/sh &
) &