как использовать pcntl fork() с Apache?
Это мой код, внутри index.php
(просто пример):
$pid = pcntl_fork();
if ($pid == -1) {
die("failed to fork");
} else if ($pid) {
// nothing to do
} else {
putDataIntoWebService();
exit();
}
echo "normal page content";
Этот фрагмент прекрасно работает в командной строке. В Apache exit()
убивает их обоих, родительский и дочерний процесс. Что такое обходной путь?
2
2 answers
Вы не можете использовать функции pcntl_*
с версией PHP модуля Apache. Цитируя комментарий в pcntl_fork
документация:
Невозможно использовать функцию 'pcntl_fork', когда PHP используется в качестве модуля Apache. Вы можете использовать pcntl_fork только в режиме CGI или из командной строки.
Использование этой функции приведет к: 'Фатальная ошибка: Вызов неопределенной функции: pcntl_fork()'
5
Author: Hubro, 2012-08-31 11:52:53
Вот решение:
posix_kill(getmypid(), SIGKILL);
Вместо exit()
.
1
Author: yegor256, 2012-09-05 08:38:24