このマニュアルは既にメンテナンスが終了したバージョンの Ruby を対象としています。 最新版のマニュアルへ

Ruby 3.0 リファレンスマニュアル

module function Process.#wait2

wait2(pid = -1, flags = 0) -> [Integer, Process::Status] | nil[permalink][rdoc][edit]
waitpid2(pid = -1, flags = 0) -> [Integer, Process::Status] | nil

pid で指定される特定の子プロセスの終了を待ち、そのプロセスが終了した時に子プロセスの pid と終了ステータスを表す Process::Status オブジェクトの配列を返します。ノンブロッキングモードで子プロセスがまだ終了していない時には nil を返します。

$? に終了した子プロセスの Process::Status オブジェクトがセットされます。

[PARAM] pid:
Process.#wait の pid と同じです。
[PARAM] flags:
Process.#wait の flags と同じです。
[EXCEPTION] Errno::ECHILD:
子プロセスが存在しない場合に発生します。
pid = fork { sleep 1 }
p Process.wait2 # => [70024, #<Process::Status: pid 70024 exit 0>]

[SEE_ALSO] Process.#wait, wait(2), waitpid(2)