Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > ptyライブラリ > PTYモジュール > getpty
getpty(command) -> [IO, IO, Integer]
[permalink][rdoc]getpty(command) {|read, write, pid| ... } -> nil
spawn(command) -> [IO, IO, Integer]
spawn(command) {|read, write, pid| ... } -> nil
擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。
プラットフォームに依存しますが、対応していれば、作られたプロセスはセッションリーダーに なり、その制御端末は作成された擬似 tty に設定されます。
このメソッドによって作られたサブプロセスが動いている間、子プロセス の状態を監視するために SIGCHLD シグナルを捕捉します。子プロセス が終了したり停止した場合には、例外 PTY::ChildExited が発生します。
このメソッドがブロック付きで呼ばれた場合には、そのブロック の中でのみ SIGCHLD が捕捉されます。したがって、ブロックパラメータ として渡されたIOオブジェクトを、ブロックの外に持ち出して使うの は勧められません。
[SEE_ALSO] Kernel.#system, IO.popen, PTY.#protect_signal, signal(2)