3

这是我的代码,里面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";

此代码段在命令行中运行良好。在 Apacheexit()中,父进程和子进程都杀死了它们。什么是解决方法?

4

2 回答 2

5

您不能将这些pcntl_*函数与 PHP 的 Apache 模块版本一起使用。引用pcntl_fork文档中的评论:

当 PHP 用作 Apache 模块时,不能使用函数 'pcntl_fork'。您只能在 CGI 模式或命令行中使用 pcntl_fork。

使用此函数将导致:“致命错误:调用未定义函数:pcntl_fork()”

于 2012-08-31T11:52:53.017 回答
2

这是解决方案:

posix_kill(getmypid(), SIGKILL);

而不是exit().

于 2012-09-05T08:38:24.800 回答