Управление процессами

Введение

Поддержка управления процессами в PHP реализует Unix-стиль создания процессов, выполнения программ, обработки сигналов и завершения процессов. Управление процессами лучше не включать в окружении веб-сервера, поскольку при работе с функциями управления процессами в окружении веб-сервера иногда возникают непредсказуемые результаты. (Практически это означает, что модуль pcntl лучше загружать, только если PHP работает в режиме CLI или CGI, но не как модуль веб-сервера Apache.)

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

Модуль PCNTL теперь использует «тики» как механизм callback-функций для обработки сигналов, который значительно быстрее предыдущего механизма. Это изменение подчиняется семантике «пользовательских тиков». Разработчик объявляет инструкцию declare() в тех местах программы, в которых разрешается выполнять callback-функции тиков. Это помогает сократить накладные расходы на обработку асинхронных событий. Раньше компиляция PHP со включённым модулем pcntl приводила к накладным расходам, даже если скрипт не обращался к модулю pcntl.

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

  • Установка и настройка
  • Предопределённые константы
  • Примеры
  • Pcntl\QosClass — Перечисление Pcntl\QosClass
  • Функции модуля PCNTL
    • pcntl_alarm — Устанавливает таймер доставки сигнала SIGALRM
    • pcntl_async_signals — Включить/отключить асинхронную обработку сигналов, либо получить текущий статус
    • pcntl_errno — Псевдоним pcntl_get_last_error
    • pcntl_exec — Выполняет указанную программу в пространстве текущего процесса
    • pcntl_fork — Разветвить (fork) текущий запущенный процесс
    • pcntl_get_last_error — Извлекает номер ошибки, который установила последняя функция модуля pcntl, которая завершилась ошибкой
    • pcntl_getcpuaffinity — Получает информацию о привязке процессора к процессу
    • pcntl_getpriority — Получить значение приоритета процесса
    • pcntl_rfork — Взаимодействует с ресурсами процесса
    • pcntl_setcpuaffinity — Устанавливает связку процессора с процессом
    • pcntl_setpriority — Изменить приоритет процесса
    • pcntl_signal — Устанавливает обработчик сигнала
    • pcntl_signal_dispatch — Вызывает обработчики для ожидающих сигналов
    • pcntl_signal_get_handler — Получить текущий обработчик указанного сигнала
    • pcntl_sigprocmask — Задаёт и извлекает список блокируемых сигналов
    • pcntl_sigtimedwait — Ожидает сигналы в течение заданного времени
    • pcntl_sigwaitinfo — Ожидание сигналов
    • pcntl_strerror — Извлекает сообщение о системной ошибке, которое связано с номером ошибки
    • pcntl_unshare — Разделяет части контекста выполнения процесса
    • pcntl_wait — Ожидает или возвращает статус порождённого дочернего процесса
    • pcntl_waitid — Ожидает, пока дочерний процесс изменит состояние
    • pcntl_waitpid — Ожидает или возвращает статус порождённого дочернего процесса
    • pcntl_wexitstatus — Получить код возврата завершённого дочернего процесса
    • pcntl_wifexited — Проверяет, соответствует ли код завершения процесса нормальному завершению
    • pcntl_wifsignaled — Проверить, соответствует ли код завершения процесса завершению по сигналу
    • pcntl_wifstopped — Проверяет, остановлен ли дочерний процесс
    • pcntl_wstopsig — Получить сигнал, из-за которого был остановлен дочерний процесс
    • pcntl_wtermsig — Получить сигнал, из-за которого был принудительно завершён дочерний процесс
Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top