【Ruby3.x】Process::Status::pid()メソッドの使い方
pidメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
pidメソッドは、Process::Statusオブジェクトが表す子プロセスのプロセスID(PID)を取得するメソッドです。Rubyでは、Process.waitやsystem、Open3.capture3などのメソッドを通じて子プロセスを実行し、その終了を待機する際に、子プロセスの終了情報がProcess::Statusオブジェクトとして提供されます。このProcess::Statusオブジェクトは、子プロセスがどのように終了したか(正常終了か、異常終了か、どのような終了コードかなど)を示す様々なステータス情報をカプセル化しています。その情報の一つとして、終了した子プロセスのプロセスIDも保持しており、pidメソッドはそのプロセスIDを整数値として返します。
このメソッドを利用することで、例えば複数の子プロセスを非同期で起動し、その後それぞれの終了をProcess.waitpidなどで監視している場合に、Process::Statusオブジェクトから直接、どのプロセスが終了したのかを確実に特定することができます。子プロセスの状態管理や、ログに終了プロセスIDを記録するといった用途で非常に有用です。返される値は、対応する子プロセスのユニークな識別子であるプロセスIDです。
構文(syntax)
1system("true") 2status = $? 3status.pid
引数(parameters)
引数なし
引数はありません
戻り値(return)
Integer
このメソッドは、実行された子プロセスのプロセスID(PID)を整数型で返します。