【PHP8.x】proc_get_status関数の使い方
作成日: 更新日:
proc_get_status関数は、proc_open
関数によって開始されたプロセスの実行状態に関する情報を取得する関数です。具体的には、プロセスID (PID)、実行中かどうか、終了コード(プロセスが終了した場合)、シグナル番号(プロセスがシグナルによって終了した場合)などの情報を含む連想配列を返します。
この関数は、非同期的に実行されるプロセスを監視し、その状態に応じて処理を分岐させる場合に非常に役立ちます。例えば、時間がかかる処理をバックグラウンドで実行し、その進捗状況を定期的に確認したり、エラーが発生した場合に適切な対応を取ったりする際に利用できます。
proc_open
関数によって作成されたプロセスリソースを引数として渡す必要があります。このリソースは、proc_open
関数の戻り値として得られます。proc_get_status
関数が返す連想配列には、以下のキーが含まれます。
running
: プロセスがまだ実行中かどうかを示すブール値。true
であれば実行中、false
であれば終了しています。pid
: プロセスのプロセスID。exitcode
: プロセスが終了した場合の終了コード。正常終了の場合は0、エラーの場合は0以外の値になります。termsig
: プロセスがシグナルによって終了した場合のシグナル番号。stopsig
: プロセスが停止シグナルによって停止した場合のシグナル番号。signaled
: プロセスがシグナルによって終了したかどうかを示すブール値。stopped
: プロセスが停止しているかどうかを示すブール値。
proc_get_status
関数を使用する際には、proc_open
関数と組み合わせて使用し、プロセスの状態を正しく監視する必要があります。また、返される情報の意味を理解し、適切に処理を行うことで、より堅牢なシステムを構築できます。
基本的な使い方
構文(syntax)
proc_get_status(resource $process): array|false
引数(parameters)
resource $process
- resource $process:
proc_open()
関数によって返されたプロセスリソースを指定します。
戻り値(return)
array
指定された外部プロセスに関する実行状況を示す連想配列を返します。この配列には、プロセスの実行状態(実行中か終了したか)、終了コード、シグナル番号、および標準入出力ストリームの状態などの情報が含まれます。