【Ruby3.x】Process::Status::exited?()メソッドの使い方
exited?メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
exited?メソッドは、対象のプロセスが正常に終了したかどうかを判定するメソッドです。Ruby 3のProcess::Statusクラスに属しており、主に子プロセスの実行結果を確認する際に利用されます。
このメソッドは、プロセスがエラーや外部からの割り込み(シグナル)なしに、自らの処理を完了して終了した場合にtrueを返します。例えば、プログラムが成功裏に最後まで実行された場合や、exit(0)のように正常終了を示すステータスコードで明示的に終了した場合がこれに該当します。これは、プログラムが意図した通りに動作を終えたことを意味します。
一方、プロセスがシグナルによって強制終了させられた場合(例: Ctrl+Cによる中断やkillコマンドによる終了)、またはプログラム内で捕捉されなかった例外が発生して異常終了した場合など、正常終了ではない場合にはfalseを返します。
システムエンジニアを目指す方々が、シェルスクリプトや他のプログラムを実行し、その成否をRubyスクリプト内で確認する際に、exited?メソッドは非常に役立ちます。これにより、外部プロセスの完了状態に基づいて、後続の処理を適切に制御することが可能になります。例えば、バックグラウンドで実行したデータ処理が正しく終了したかを確認し、次のステップに進むべきかを判断する際に利用できます。
構文(syntax)
1system "exit 0" 2$?.exited?
引数(parameters)
引数なし
引数はありません
戻り値(return)
Boolean
実行されたプロセスが正常に終了したかどうかを示す真偽値を返します。