【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

指定された外部プロセスに関する実行状況を示す連想配列を返します。この配列には、プロセスの実行状態(実行中か終了したか)、終了コード、シグナル番号、および標準入出力ストリームの状態などの情報が含まれます。

【PHP8.x】proc_get_status関数の使い方 | いっしー@Webエンジニア