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

singleton method Process::Status.wait

wait(pid = -1, flags = 0) -> Process::Status | nilRuby 3.0 から[permalink][rdoc][edit]

Process?.wait と同じですが、プロセス ID ではなく Process::Status を返します。

pid と flags の意味は Process?.wait と同じです。

子プロセスがない場合は、実在しないプロセスを表す「空の」 Process::Status を返します。この場合 Process::Status#pid は -1 になります。

Process?.wait と異なり、$? は更新されません。

すべてのプラットフォームで使えるわけではありません。

[PARAM] pid:
待機する子プロセスのプロセス ID を指定します。指定できる値は Process?.wait と同じです。
[PARAM] flags:
Process::WNOHANG などを指定します。指定できる値は Process?.wait と同じです。
[RETURN]
flags に Process::WNOHANG を指定していて、子プロセスがまだ終了していない場合は nil を返します。
pid = fork { exit 1 }

status = Process::Status.wait(pid)
p status.class      # => Process::Status
p status.exitstatus # => 1

# Process.wait と違い $? は更新されない
p $?                # => nil
例: 子プロセスがない場合
p Process::Status.wait # => #<Process::Status: pid -1 exit 0>

[SEE_ALSO] Process?.wait, Process?.wait2