(PHP 4 >= 4.1.0, PHP 5, PHP 7)
pcntl_fork — Разветвить (fork) текущий запущенный процесс
Функция pcntl_fork() создает дочерний процесс, который отличается от родительского процесса только его PID и PPID. Пожалуйста обратитесь к вашему системному руководству (man) fork(2) для ознакомления со спецификой работы fork на вашей системе.
В случае успеха, PID дочернего процесса будет возвращен в родительском потоке (thread) запуска и 0 будет возвращен в дочернем потоке запуска. В случае сбоя, в родительский контекст будет возвращено -1, дочерний процесс создан не будет и PHP сгенерирует соответствующую ошибку.
Пример #1 Пример pcntl_fork()
<?php
$pid = pcntl_fork();
if ($pid == -1) {
die('Не удалось породить дочерний процесс');
} else if ($pid) {
// Код родительского процесса
pcntl_wait($status); // Защита против дочерних "Зомби"-процессов
} else {
// Код дочернего процесса
}
?>