次のページ 前のページ 目次へ

5. クライアントに指定する

クライアントプログラム (例としてグラフィックアプリケーション) は DISPLAY 環境変数を調べて接続するディスプレイを知ります。しかし、 クライアント起動時のコマンドライン引数に -display hostname:0 を与えた場合は、 この設定を優先します。いくつかの例で明らかにしましょう。

私たちのコンピュータは外部からホスト名 light として見えており、 ドメイン uni.verse に所属しているとします。 普通に X サーバを実行しているなら、ディスプレイは light.uni.verse:0 として識別されます。 dark.matt.er というリモートコンピュータで描画プログラムの xfig を実行し、 ローカルマシン light に xfig の出力を表示させたいと思います。

すでにリモートコンピュータ dark.matt.er に telnet していると想定します。

リモートコンピュータで csh を使っているなら

dark% setenv DISPLAY light.uni.verse:0
dark% xfig &

とするか、あるいは

dark% xfig -display light.uni.verse:0 &

とします。

リモートコンピュータで sh を使っているなら

dark$ DISPLAY=light.uni.verse:0
dark$ export DISPLAY
dark$ xfig &

とするか、あるいは

dark$ DISPLAY=light.uni.verse:0 xfig &

とします。もちろん

dark$ xfig -display light.uni.verse:0 &

でもいいです。

(訳注;

dark$ env DISPLAY=light.uni.verse:0 xfig&
なら csh でも sh でも使えますね :) )

telnet の種類によっては、自動的にリモートホストへ DISPLAY 変数を 転送するものもあるようです。そんな telnet を使用するなら、 ディスプレイの指定を手動で行なわなくてもよいので、幸運でしょう。 telnet の殆どは TERM 環境変数を転送する種類なので 賢くやるなら、TERM 環境変数に DISPLAY 変数の内容を代入して 代用させることです。

代用するのと同様の考え方で、次のような数行のスクリプトで実現できます。

telnet する前に、TERMDISPLAY の値を加える。telnet する。 リモートコンピュータの適切な .*shrc ファイルで、TERM から DISPLAY の値を読む。


次のページ 前のページ 目次へ