要約
疑似端末(Pseudo tTY)を扱うモジュールです。
目次
- モジュール関数
モジュール関数
getpty(command) -> [IO, IO, Integer][permalink][rdoc]getpty(command) {|read, write, pid| ... } -> nilspawn(command) -> [IO, IO, Integer]spawn(command) {|read, write, pid| ... } -> nil-
擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。
プラットフォームに依存しますが、対応していれば、作られたプロセスはセッションリーダーになり、その制御端末は作成された擬似 tty に設定されます。
このメソッドによって作られたサブプロセスが動いている間、子プロセスの状態を監視するために SIGCHLD シグナルを捕捉します。子プロセスが終了したり停止した場合には、例外 PTY::ChildExited が発生します。
このメソッドがブロック付きで呼ばれた場合には、そのブロックの中でのみ SIGCHLD が捕捉されます。したがって、ブロックパラメータとして渡されたIOオブジェクトを、ブロックの外に持ち出して使うのは勧められません。
- [PARAM] command:
- 擬似 tty 上で実行するコマンド
- [RETURN]
- 返値は3つの要素からなる配列です。最初の要素は擬似 tty から読み出すための IO オブジェクト、2番目の要素は書きこむための IO オブジェクト、 3番目の要素は子プロセスのプロセス ID です。このメソッドがブロック付き呼ばれた場合、これらの要素はブロックパラメータとして渡され、メソッド自体は nil を返します。
- [EXCEPTION] PTY::ChildExited:
- 子プロセスが終了したり停止したりした場合に発生します。
[SEE_ALSO] Kernel.#system, IO.popen, PTY.#protect_signal, signal(2)
protect_signal { ... } -> self[permalink][rdoc]-
このメソッドは何もしません。このメソッドは obsolete です。
reset_signal -> self[permalink][rdoc]-
このメソッドは何もしません。このメソッドは obsolete です。