Go to the first, previous, next, last section, table of contents.

### `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

`参照`
  section `ox_rpc`, `ox_cmo_rpc`, `ox_execute_string`, section `ox_pop_cmo`, `ox_pop_local`, section `ifplot`, `conplot`, `plot`, `polarplot`, `plotover`

Go to the first, previous, next, last section, table of contents.