rstart(1) リモートクライアント起動機構(Remote Start client)のサンプル実装

書式

rstart [-c context] [-g] [-l username] [-v] hostname command args ...

説明

Rstart は 文書 "A Flexible Remote Execution Protocol Based on rsh" で定義されるリモートクライアント起動機構(Remote Start client)の簡単な 実装である。 リモート実行機構の下部では rsh が使用される。

オプション

-c context
実行するコマンドのコンテクストを指定する。コンテクスト は プログラムが実行される一般的な環境を指定する。この環境の詳細は、ホスト に固有のものである。これはクライアントが環境の設定方法を知る必要をなく すためのものである。このオプションが省略された場合には、コンテクストに はデフォルト値 X が設定される。「普通に」 X をインストールしたホ ストから X のプログラムを実行するためには、これで問題ない。
-g
commandジェネリックなコマンドとして解釈する。これについ てはプロトコルの文章で説明されている。このオプションは、リモートシステ ムで呼び出されるものを知らなくても、共通のアプリケーションを呼び出すこ とを可能にするためにある。 現在定義さているジェネリックなコマンドはTerminal, LoadMonitor, ListContexts, ListGenericCommands だけ である。
-l username
このオプションは下位で動作している rsh に渡される。つまり、コマ ンドが指定したユーザとして実行することをリクエストする。
-v
このオプションは、rstart が動作中に詳しい表示を行うようにリクエ ストする。 このオプションを指定しない場合は、rstart はリモートの rstart の補助プログラムの出力を破棄し、rstart の補助プログ ラムに対し、プログラムを実行するために使う rsh 接続から切り放す よう指示する。このオプションを指定すると、補助プログラムからの応答が表 示され、実行されるプログラムも接続から切り放されることはない。

注意

この実装は良いものではない。もっと洗練された実装を作ることはできるし、 またそうするべきである。

エラー処理が存在しない。-v オプションを指定しないと、リモートか らのエラー通知は知らされることなく破棄される。-v オプションを指 定すれば、エラーは通知される。

環境変数 $DISPLAY の渡し方。現在の実装では、変数の値がコロンで始まるも のであれば、ローカルのホスト名を値の最初の部分に追加する。ホスト名を一 意に決めるためにはローカルのドメイン名を追加しなければならないが、この 処理は行われない。

環境変数 $SESSION_MANAGERを渡すべきであるが、この処理は行われない。

現在のディスプレイに対する X11 の認証情報が渡される。

ICE 認証情報を渡すべきであるが、この処理は行われない。渡すべき ICE 認 証情報の決め方ははっきりとは決まっていない。

-v オプションを指定しても、サンプルの rstart 補助プログラ ムは、実行するプログラムの終了を待つシェルを残す。これによる実害は無く、 消費するリソースもほとんど無いが、それでも望ましくないと思うならば、明 示的に "exec" コマンドをシェルで指定すれば回避することもできる。以下に その例を示す。

rstart somehost exec xterm

このやり方は、リモートシステムで使われているコマンドインタプリタに明ら かに依存する。ここで示した例は Bourne シェルや C シェルでは正しく動作 する。

著者

Jordan Brown, Quarterdeck Office Systems