要約
擬似端末(Pseudo tTY)を扱うモジュールです。
目次
特異メソッド
check(pid, raise = false) -> Process::Status | nil
[permalink][rdoc][edit]-
pid で指定された子プロセスの状態をチェックし、変化があれば変化したステータスを返します。実行中、あるいは変化なしであれば nil を返します。
状態が変化した後、その状態を取得することは一回しかできない(くりかえし check を呼んだら nil が返ってくる)ので注意してください。
状態が変化して、終了したか停止した場合、第二引数が偽であれば、対応する Process::Status オブジェクトを返します。
- [PARAM] pid:
- チェックしたい子プロセスの PID を指定します。
- [PARAM] raise:
- 真を指定すると、子プロセスが終了または停止していた場合、例外 PTY::ChildExited が発生します。デフォルトは偽です。 (なお、バグにより、1.9.2 pXXX より古い ruby では、終了または停止していなくても、ただちに例外が発生します)
open -> [IO, File]
[permalink][rdoc][edit]open {|master_io, slave_file| ... } -> object
-
仮想 tty を確保し、マスター側に対応する IO オブジェクトとスレーブ側に対応する File オブジェクトの配列を返します。
ブロック付きで呼び出された場合は、これらの要素はブロックパラメータとして渡され、ブロックから返された結果を返します。また、このマスター IO とスレーブ File は、ブロックを抜けるときにクローズ済みでなければクローズされます。
モジュール関数
getpty(command) -> [IO, IO, Integer]
[permalink][rdoc][edit]getpty(command) {|read, write, pid| ... } -> nil
spawn(command) -> [IO, IO, Integer]
spawn(command) {|read, write, pid| ... } -> nil
-
擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。
プラットフォームに依存しますが、対応していれば、作られたプロセスはセッションリーダーになり、その制御端末は作成された擬似 tty に設定されます。
- [PARAM] command:
- 擬似 tty 上で実行するコマンド
- [RETURN]
- 返値は3つの要素からなる配列です。最初の要素は擬似 tty から読み出すための IO オブジェクト、2番目の要素は書きこむための IO オブジェクト、 3番目の要素は子プロセスのプロセス ID です。このメソッドがブロック付き呼ばれた場合、これらの要素はブロックパラメータとして渡され、メソッド自体は nil を返します。
[SEE_ALSO] Kernel.#spawn, Kernel.#system, IO.popen, signal(2)