pcntl_fork

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_forkРазветвить (fork) текущий запущенный процесс

Описание

pcntl_fork ( void ) : int

Функция 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 {
     
// Код дочернего процесса
}

?>

Смотрите также

  • pcntl_waitpid() - Ожидает или возвращает статус порожденного дочернего процесса
  • pcntl_signal() - Установка обработчика сигнала
  • setproctitle() - Установить название процесса