`ox_launch', `ox_launch_nox', `ox_shutdown'
-------------------------------------------

ox_launch([HOST[,DIR],COMMAND])
ox_launch_nox([HOST[,DIR],COMMAND])
     :: 遠隔プロセスの起動および通信を開始する.

ox_shutdown(ID)
     :: 遠隔プロセスを終了させ, 通信を終了する.

RETURN
     整数

HOST
     文字列または 0

DIR COMMAND
     文字列

ID
     整数

   * `ox_launch()' は, ホスト HOST 上でコマンド COMMAND を起動し,
     このプロセスと通信を開始する.  引数が 3 つの場合, HOST 上で, DIR
     にある `ox_launch' というサーバ起動用プログラムを立ち上げる.
     `ox_launch' は COMMAND を起動する.  HOST が 0 の時, Asir
     が動作している マシン上でコマンドを起動する.  無引数の場合, HOST
     は 0, DIR は `get_rootdir()' で返されるディレクトリ, COMMAND
     は同じディレクトリの `ox_asir' を意味する.

   * HOST が 0, すなわちサーバを local に起動する場合には, DIR
     を省略できる. この場合, DIR は `get_rootdir()' で返される
     ディレクトリとなる.

   * COMMAND が `/' で始まる文字列の場合, 絶対パスと解釈される.
     それ以外の場合, DIR からの相対パスと解釈される.

   * UNIX 版においては, `ox_launch()' は, COMMAND の標準出力, 標準
     エラー出力を表示するための `xterm' を起動する.  `ox_launch_nox()'
     は, `X' なしの環境の場合, あるいは `xterm'
     を起動せずにサーバを立ち上げる場合に用いる. この場合, COMMAND
     の出力は `/dev/null' に接続される.  `ox_launch()' の場合でも,
     環境変数 `DISPLAY' が設定されていない 場合には, `ox_launch_nox()'
     と同じ動作をする.

   * 返される整数は通信のための識別子となる.

   * Asir と通信するプロセスは同一のマシン上で動作している必要はない. ま
     た, 通信におけるバイトオーダは server, client 間での最初の
     negotiation で決まるため,
     相手先のマシンとバイトオーダが異なっていても構わない.

   * HOST にマシン名を指定する場合, 以下の準備が必要である.  ここで,
     Asir の動いているホストを `A', 通信相手のプロセス
     が起動されるホストを `B' とする.

       1. ホスト `B' の `~/.rhosts' に, ホスト `A' のホスト
          名を登録する.

       2. `ox_plot' など, `X' とのコネクションも用いられる場合,
          `Xserver' に対し, 必要なホストを authorize させる.  `xhost'
          で必要なホスト名を追加すればよい.

       3. COMMAND によっては, スタックを大量に使用する ものもあるため,
          `.cshrc' でスタックサイズを大きめ (16MB 程度) に
          指定しておくのが安全である. スタックサイズは `limit stacksize
          16m' などと指定する.

   * COMMAND が, X 上にウインドウを開ける場合,
     DISPLAYが指定されればその文字列を, 省略時には環境変数 `DISPLAY'
     の値を用いる.

   * 環境変数 `ASIR_RSH' がセットされている場合,
     サーバの立ち上げプログラム として`rsh'
     の代わりにこの変数の値が用いられる. 例えば,

          % setenv ASIR_RSH "ssh -f -X -A "

     により, サーバの立ち上げに `ssh' が用いられ, X11 の通信が
     forwarding される. 詳しくは `ssh' のマニュアルを 参照.

   * `ox_shutdown()' は識別子 ID に対応する遠隔プロセス を終了させる.

   * Asir が正常した場合には全ての入出力ストリームは自動的に閉じられ,
     起動されているプロセスは全て終了するが, 異常終了した場合,
     遠隔プロセス が終了しない場合もある. Asir が異常終了した場合,
     遠隔プロセスを 起動したマシン上で `ps' などを起動して, もし Asir
     から起動 したプロセスが残っている場合, `kill' する必要がある.

   * log 表示用 `xterm' は `-name ox_term' オプションで起動される.
     よって, `ox_term' なるリソース名に対して `xterm' のリソース設定
     を行えば, log 用 `xterm' の挙動のみを変えることができる.  例えば,

          ox_xterm*iconic:on
          ox_xterm*scrollBar:on
          ox_xterm*saveLines:1000

     により, icon で起動, scrollbar つき, scrollbar で参照できる行数
     が最大 1000 行, という指定ができる.


     [219] ox_launch();
     0
     [220] ox_rpc(0,"fctr",x^10-y^10);
     0
     [221] ox_pop_local(0);
     [[1,1],[x^4+y*x^3+y^2*x^2+y^3*x+y^4,1],
     [x^4-y*x^3+y^2*x^2-y^3*x+y^4,1],[x-y,1],[x+y,1]]
     [222] ox_shutdown(0);
     0

参照
     *Note `ox_rpc ox_cmo_rpc ox_execute_string': ox_rpc ox_cmo_rpc
     ox_execute_string, *Note `ox_pop_cmo ox_pop_local': ox_pop_cmo
     ox_pop_local, *Note `ifplot conplot plot polarplot plotover':
     ifplot conplot plot polarplot plotover

