module function Process.#waitpid

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

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

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

[PARAM] pid:
子プロセスのプロセス ID を整数で指定します。
[PARAM] flags:
Process モジュールの定数 Process::WNOHANG(ノンブロッキングモード)と Process::WUNTRACED の論理和を指定します。省略したときの値は 0 です。ノンブロッキングモードで子プロセスがまだ終了していない時には nil を返します。waitpid(2)wait4(2) の実装されていないマシンでは flags はいつも nil または 0 を指定する必要があります。
[EXCEPTION] Errno::ECHILD:
子プロセスが存在しない場合に発生します。

[SEE_ALSO] waitpid(2)