ToolTalk ユーザーズガイド

環境変数

ここでは、ToolTalk と関連環境変数について説明します。

ToolTalk 環境変数

いくつかの ToolTalk 環境変数を設定できます。これらの変数について、表 4-2 に説明します。

表 4-2 環境変数

変数 

説明 

TTSESSION_CMD

ツールが ttsession を自動的に開始するときに、指定された標準オプションを無効にする。この変数を設定すると、すべての ToolTalk クライアントはこのコマンドを使用して、X セッションを自動的に開始させる

 

 

TT_ARG_TRACE_WIDTH

トレースモードを使用する際に、表示する引数およびコンテキストの値の文字数を定義する。デフォルトでは最初の 40 字を表示する 

TT_FILE

定義済みのファイルに範囲指定したメッセージがツールを呼び出す際に、ttsession がこの変数にパス名を設定する

TT_HOSTNAME_MAP

マップファイルを指す。定義したマップファイルは、ホストマシンのリダイレクトのために ToolTalk クライアントが読み取る 

TT_PARTITION_MAP

マップファイルを指す。定義したマップファイルは、ファイルパーティションのリダイレクトのために ToolTalk クライアントが読み取る 

TT_SESSION

ttsession は、それが起動するツールにセッション識別子を通知する。この変数を設定すると、ToolTalk クライアントライブラリは、その値をデフォルトのセッション識別子として使用する。この変数に記憶された文字列は、tt_default_session_set へ渡すことができる

TT_TOKEN

ToolTalk クライアントライブラリに、ttsession によって起動したことを通知する。これによってクライアントは、起動が正常であったことを ttsession に確認できる

TT_TRACE_SCRIPT

tttrace(1) についてトレーススクリプトで指定したように、libtt がクライアントサイドのトレースを行うようにする

TTPATH

tt_type_comp(1)rpc.ttdbserverd(1M) で使用する ToolTalk 型データベースがどこに常駐するかを ToolTalk に通知する

CEPATH

ToolTalk 型データベースの常駐場所を分類機構に通知する 

DISPLAY

TT_SESSION 変数を設定しない場合、ttsession は起動するツールにセッション識別子を通知する。

DISPLAY 変数を設定すると、ToolTalk クライアントライブラリは、その値をデフォルトのセッション識別子として使用する。この変数は、ttsession が OpenWindows 上で動作しているときに自動起動すると通常設定される。


注 -

Solaris 2.6 オペレーティング環境およびその互換バージョンのオペレーティングシステムでは、アカウントによってはこの変数が渡されない場合がある。つまり、コンソールにユーザー A またはユーザー B のスイッチユーザーとしてログオンしている場合は、通常 ttsession を自動起動する ToolTalk プログラムを実行しようとしても ttsession が自動起動しないことがある。この問題を回避するためには、この変数を手入力で設定するか、.login ファイルに含める必要がある。


DTMOUNTPOINT

この変数を設定すると、構築されているパス名の /net の代わりに、この環境変数の値を使用して、rpc.ttdbserverd(1M) による tt_host_netfile_file(3) 照会への応答を行う

ToolTalk サービスが自動的に起動すると環境が変わります。この環境の中には、$TT_SESSION$TT_TOKEN という環境変数や、キーワードがドル記号 ($) で始まる開始メッセージのコンテキストがすべて入っています。また、ファイルを配信範囲とするメッセージの場合には、$TT_FILE という環境変数もこの環境に入ることができます。


注 -

子プロセスが tt_open を起動する場合、その親プロセスはこの環境の変化を子プロセスに伝播しなければなりません。


その他の環境変数

ToolTalk の開発環境を操作するのに TMPDIR という環境変数も使用できます。たとえば、次のように入力すると、ディレクトリ /var/tmp にファイルがリダイレクトされます。


TMPDIR=/var/tmp

リモートホスト上のプログラムの起動に必要な環境変数

開始文字列によってプロセスが起動されるのは ttsession が動作しているホスト上だけですが、起動されたプロセスは他のホスト上の他のプロセスを起動できます。

そのためには、まず開始文字列を次のようにします。


# rsh farhost myprog

次に、myprog を確実に正しいセッションに入れて初期メッセージを受信させるために、ToolTalk の重要な環境変数をいくつか伝播する必要があります。これには、例 4-1 に示すように、シェルスクリプトの ttrsh を使用します。


例 4-1 ToolTalk 環境変数の伝播


#! /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 &
) &

コンテキストスロットの使用による環境変数の作成

メッセージコンテキストは、ToolTalk サービスがアプリケーションを起動する際に特別な意味を持ちます。コンテキストスロット名がドル記号 ($) で始まる場合、ToolTalk サービスはこの値を環境変数として解釈します。たとえば、次のようにコンテキストスロット $CON1 の値が使用された場合です。


start "my_application $CON1"