(PHP 8 >= 8.1.0)
pcntl_rfork — Взаимодействует с ресурсами процесса
flags
       Параметр flags определяет, какие ресурсы вызывающего процесса (родительского)
       разделяются новым процессом (дочерним) или инициализируются в значения по умолчанию.
      
       flags является логическим OR (или) некоторого подмножества из:
       
RFPROC: Если установлено, создаётся новый процесс;
         в противном случае изменения затрагивают текущий процесс.
        RFNOWAIT: Если установлено, дочерний процесс будет отделён от родительского.
         При выходе дочерний процесс не будет оставлять статус для родителя, чтобы забрать его.
        RFFDG: Если установлено, копируется таблица дескрипторов файлов вызывающей стороны;
         В противном случае два процесса используют одну таблицу.
        RFCFDG: Если установлено, новый процесс начинается с чистой таблицей дескрипторов файлов.
         Взаимоисключающий флаг с RFFDG.
        RFLINUXTHPN: Если установлено, ядро будет возвращать SIGUSR1 вместо SIGCHILD при выходе из дочернего потока.
         Предназначен для уведомления родительского процесса о выходе из Linux-клона.
        signalНомер сигнала.
   В случае успешного выполнения в потоке выполнения родительского процесса возвращается PID дочернего процесса,
   а в потоке выполнения дочернего процесса возвращается 0.
   Если в контексте родителя возникла ошибка, функция вернёт -1,
   не создаст дочерний процесс и выдаст ошибку PHP.
  
Пример #1 Пример использования функции pcntl_rfork()
<?php
$pid = pcntl_rfork(RFNOWAIT|RFTSIGZMB, SIGUSR1);
if ($pid > 0) {
  // Родительский процесс
  var_dump($pid);
} else {
  // Дочерний процесс
  var_dump($pid);
  sleep(2); // Поскольку дочерний процесс не ждёт, мы видим его pid
}
?>Вывод приведённого примера будет похож на:
int(77093) int(0)
Замечание:
Функция доступна только в системах BSD.
