Articles of pcntl

Вызов неопределенной функции pcntl_fork () ubuntu server apache

У меня проблема с pcnt_fork Я выполнил этот урок для установки instalation of pcntl $ mkdir /tmp/phpsource $ cd /tmp/phpsource $ apt-get source php5 $ cd /tmp/phpsource/php5-*/ext/pcntl $ phpize $ ./configure $ make # then copy your module to php5 module-lib path (in my case:) # and create an .ini-file to enable the module for […]

Как проверить модуль PCNTL

Я пишу простой скрипт проверки требований. Он проверяет все необходимые модули PHP. Мне нужно проверить, установлен ли pcntl. Но этот модуль доступен только в среде cgi и невидим для веб-запросов. extension_loaded ('pcntl') и function_exists ('pcntl_fork') возвращают false. Как я могу выполнить эту проверку?

SIGCHILD не обнаруживает сигнал, когда умирает детский процесс

Я пытаюсь создать процесс демона, который обрабатывает несколько дочерних потоков. Но дочерний поток, похоже, не посылает сигнал родительскому устройству для вызова функции. я попытался вывести его из класса и сделать его стандартной функцией, но это тоже не помогает. class Daemon { public function __construct() { $set = pcntl_signal(SIGCHLD, array($this, 'childSignalHandler')); $pid = pcntl_fork(); if ($pid […]

Почему использование библиотеки pcntl в php не рекомендуется на prod-serv?

Может ли кто-нибудь сказать мне, почему использование pcntl lib на производственных серверах не рекомендуется? В руководстве PHP очень кратко говорится об этом, и мне крайне необходимо использовать эту библиотеку … Есть ли другой способ сделать то же самое в php?

pcntl_wait не прерывается SIGTERM

Согласно документам PHP для pcntl_wait , Функция wait приостанавливает выполнение текущего процесса до тех пор, пока ребенок не выйдет, или пока не поступит сигнал, действие которого заключается в прекращении текущего процесса или вызове функции обработки сигнала. Тем не менее, когда я запускаю следующий код и отправляю SIGTERM в родительский процесс с kill -s SIGTERM [pid] […]

Какова связь между объявлением (тиками) и обработчиком сигналов в php

У меня есть такой код, как этот, и я хочу понять, как работает fork, но я смущен declare(ticks=1) . когда я помещаю его в первую строку, после завершения дочернего процесса обработчик сигнала будет вызван, и это то, что я хочу; но когда я его удалю, обработчик сигнала никогда не будет вызван! Итак, я хочу знать, […]

pcntl_fork () return, Fatal error: вызов неопределенной функции pcntl_fork ()

Я пытаюсь разблокировать процесс командной строки XAMPP, используя pcntl_fork (). Когда я запускаю команду ниже: $pid = pcntl_fork(); if($pid == -1){ file_put_contents('testlog.log',"\r\nFork Test",FILE_APPEND); return 1; //error } else if($pid){ return 0; //success } else{ file_put_contents($log, 'Running…', FILE_APPEND); } Я получил: Fatal error: Call to undefined function pcntl_fork() Может ли кто-нибудь предложить, как это исправить?

Может ли APC повысить скорость выполнения CLI-скриптов при использовании с pcntl_fork ()?

APC работает, сохраняя коды операций из файлов PHP в общей памяти. Когда PHP используется с веб-сервером (например, Apache), общая память имеет долгую жизнь. Когда вызывается из командной строки, тогда кеш APC создается и уничтожается для каждого процесса. По умолчанию APC отключается по умолчанию, вероятно, из-за этого. У меня есть теория, что преимущества использования APC будут […]

Включить PCNTL в Ubuntu PHP – тест не работает

Мне нужна помощь в: Как включить PCNTL в Ubuntu PHP. $ mkdir /tmp/phpsource $ cd /tmp/phpsource $ wget http://museum.php.net/php5/php-5.3.2.tar.gz $ tar xvf php-5.3.2.tar.gz $ cd php-5.3.2/ext/pcntl $ phpize -bash: phpize: command not found Все прошло нормально, пока я не попытался запустить phpize! И затем я получаю сообщение об ошибке '-bash: phpize: command not found' ?? […]

Проблема с php forking

У меня есть следующий тестовый php для выполнения процесса fork / spawn, где тест также пытается убить дочерний процесс (zombie) после завершения. Я хотел бы иметь более эффективный процесс, когда любые дочерние процессы немедленно удаляются из таблицы процессов как можно скорее. Текущая попытка заполняет таблицу процессов и вызывает проблему выделения памяти, которая отключает систему. Приложение […]