Subject: How do I use "rsh" without having the rsh hang around ... ?
Date: Thu Mar 18 17:16:55 EST 1993

3.2) "rsh" を使うとき、リモートのコマンドが終了するまで時間を 潰さなくてもよい方法はありませんか。

(質問 2.7 の "rsh" に関する話題も見て下さい。)

以下のような常識的は答えでは上手くいきません。

    
rsh machine command &
rsh machine 'command &'
例えば、rsh machine 'sleep 60 &' としてみて下さい。"rsh" はすぐには終 了しないでしょう。"rsh" は、リモートの 'sleep' コマンドをバックグラウ ンドで実行しても、それが終了するまで 60 秒間待ちます。さて、'sleep' を 開始した後、すぐに "rsh" を終了するにはどうすれば良いでしょう。

解答:

もし、リモートマシン上で csh を使っている場合は、
    
rsh machine -n 'command >&/dev/null </dev/null &'
リモートマシン上で sh を使っている場合は、
    
rsh machine -n 'command >/dev/null 2>&1 </dev/null &'
何故かといいますと、"-n" は rsh の標準入力を /dev/null に接続するため、 rsh をローカルマシンのバックグラウンドで実行できるようになります。よっ て、"-n" は "< /dev/null" とする場合と同じです。さらに、リモートマシン 側の入出力のリダイレクション('' の中身)は、rsh に(データの流れが無いの で)セッションはもう終了したと思わせることができます。

注:

リモートマシン上での入出力のリダイレクトに使うファイルは /dev/null でな くても構いません。普段どうり、どのようなファイルでも動きます。

多くの場合、このような複雑なコマンドの各部分は必要ありません。


UNIX FAQ LIST / Copyright(c)1994,Ted Timar / tmatimar@isgtec.com


Maintainer: あさだ たくや