(PHP 8 >= 8.1.0)
pcntl_rfork — プロセスのリソースを管理する
flags
       flags は、
       呼び出しているプロセス(親) のリソースを新しいプロセス(子)と共有するか、
       デフォルト値で初期化するかを指定します。
      
       flags は、
       以下のうちのいくつかを論理ORで指定します:
       
RFPROC:
         設定すると、新しいプロセスが作られます。
         設定しない場合、変更は現在のプロセスに適用されます。
        RFNOWAIT:
         設定すると、子プロセスは親プロセスから切り離されます。
         子プロセスが終了するときには、
         親プロセスが収集するステータスが残りません。
        RFFDG:
         設定すると、
         呼び出し側のファイルディスクリプタテーブルがコピーされます。
         設定しない場合、
         ふたつのプロセスが単一のテーブルを共有します。
        RFCFDG:
         設定すると、新しいファイルディスクリプタテーブルを使って
         新しいプロセスが開始されます。
         RFFDG とは同時に指定できません。
        RFLINUXTHPN:
         設定すると、
         子のスレッドが終了時に kernel は SIGCHILD ではなく、
         SIGUSR1 を返します。
         これは、Linux のcloneが終了時に、
         親に状態を知らせる動作を模倣する意図があります。
        signalシグナル番号
   成功時には、親スレッドの実行時に子プロセスのPIDを返し、
   子のスレッド実行時に 0 を返します。
   失敗時には、親のコンテキストには -1 を返し、
   子プロセスは作られません。そして、PHP のエラーが発生します。
  
例1 pcntl_rfork() の例
<?php
$pid = pcntl_rfork(RFNOWAIT|RFTSIGZMB, SIGUSR1);
if ($pid > 0) {
  // This is the parent process.
  var_dump($pid);
} else {
  // This is the child process.
  var_dump($pid);
  sleep(2); // as the child does not wait, so we see its "pid"
}
?>上の例の出力は、 たとえば以下のようになります。
int(77093) int(0)
注意:
この関数は、BSDシステムでのみ利用可能です。
