Введение

Поддержка управления процессами в PHP реализует Unix-стиль создания процессов, запуска программ, обработки сигналов и остановки процессов. Управление процессами должно быть ОТКЛЮЧЕНО в окружении веб-сервера и результат будет непредсказуем если функции управления процессами будут использованы в окружении такого веб-сервера. (На практике это значит, что pcntl можно использовать только в CLI и CGI, но не в apache mod_php)

Настоящая документация предназначена для объяснения основ использования каждой из функций управления процессами. Для более детального ознакомления с информацией об управлении Unix-процессами рекомендуеся обратиться к вашему системному руководству (man), включая fork(2), waitpid(2) и signal(2) или к полному справочнику такому как "UNIX. Профессиональное программирование" У. Ричарда Стивенса (Advanced Programming in the UNIX Environment by W. Richard Stevens (Addison-Wesley).

PCNTL, на данный момент, использует "тики" как механизм обработки обратных вызовов, который значительно быстрее чем предыдущий механизм. Это изменение семантически похоже на использование "user ticks". Вы используете инструкцию declare() чтобы задать расположение в программе, в котором обратные вызовы (функции-обработчики тика) могут быть выполнены. Это позволяет минимизировать накладные расходы на обработку асинхронных событий. В прошлом, компиляция PHP со включенным pcntl всегда приводила к появлению этих накладных расходов, вне зависимости от того, использует ваш скрипт pcntl или нет.

Есть нюанс, что все pnctl-скрипты в PHP версии 4.3.0 и ниже должны или использовать declare() для блока, в котором вы хотите разрешить вызов обработчика тика, или просто разрешить вызов обработчика тика на протяжении работы всего скрипта, используя новый глобальный синтаксис инструкции declare().

Замечание: Для Windows-платформ это расширение недоступно.