EN JA
REXEC(1)
REXEC(1) FreeBSD General Commands Manual REXEC(1)

名前

rexec -- exec サーバのためのリモート実行クライアント

書式

rexec [ -a -c -d -h -n -s ] [--] host command

説明

rexec は、リモートホスト上の rexecd(8) サーバのクライアントとして動作するために rexec(3) ルーチンを呼び出す。

このプログラムは、ユーザー名とパスワードによる認証を使い、ホスト計算機上で ``command'' を実行するように要求する。プロトコルの詳細は rexec(3)rexecd(8) を参照すること。

オプション

rexec は以下のオプションを受け付ける。

-a

コマンドからの標準エラーに対して補助的な (auxiliary) チャンネルを設定しない。つまり、リモートの標準エラーと標準出力の両方がローカルの標準出力に返される。デフォルトでは、 rexec はリモートコマンドからの対話出力に対して別々のチャンネルを設定するように要求する。

-c

ローカルの標準入力が閉じられた場合でも、リモートの標準入力を閉じない。通常、ローカルの標準入力が閉じられた場合は、リモートの標準入力も閉じられる。

-d

デバッグ情報を表示する。特に、リモートホストに送られたコマンドはエコーされる。

-h

使用法についてのメッセージを表示する。

-n

明示的にユーザー名とパスワードを要求する。このオプションが指定されない場合、ログイン情報として $HOME/.netrc を調べる。

-s

リモートプロセスに対して rexec が受け付けたシグナルを送らない。通常、捕捉されたシグナルはリモートプロセスに渡される。これにより、CNTRL-C を入力した場合にリモートプロセスも終了する。

--

rexec が ``command'' のオプションに切り替えるためのオプション終了の印。

とても役立つオプションは -n だけである。 $HOME/.netrc にパスワードを設定していない場合でも、パスワードを要求するプロンプトを出してくれる。

rexec othermachine -- cat ">remote_file; date" <local_file

この例では、ローカルのファイル local_file を別の計算機 othermachine 上に remote_file という名前で書き出している。

 

バグ

シグナルをローカルで受け取った場合、そのシグナルはブロック I/O を使ってリモートコマンドに渡される。シグナルが 1 バイトであっても、通信が遅い場合にはローカルコマンドを終了するのが遅れる。さらに、シグナルがローカルの rexec 手続きに残ったままになり、シグナルが送られた後にリモートコマンドがユーザー入力を受け付けられなくなる場合もある。

リモートコマンドにオプションを渡すのに、クォートするのではなく、 ``--'' フラグを使わなくてはならない点が面倒である。これは GNU の getopt(3) ルーチンが呼ばれるためである。この動作は、環境変数 POSIXLY_CORRECT を設定することで修正される。

バグ報告とシステム間の非互換性に関しては、著者に連絡して下さい。

関連項目

rexec(3), rexecd(8)

著者

Michael Sadd
 
sadd@msc.cornell.edu
 
http://www.msc.cornell.edu/~sadd/
August 15, 1999