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

# pcntl_fork

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

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

### Описание

function pcntl_fork(): 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_rfork() - Взаимодействует с ресурсами процесса
- pcntl_waitpid() - Ожидает или возвращает статус порождённого дочернего процесса
- pcntl_signal() - Устанавливает обработчик сигнала
- cli_set_process_title() - Устанавливает заголовок процесса

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open