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_*この関数は、Apache モジュール バージョンの PHP では使用できません。pcntl_forkドキュメントのコメントからの引用:

PHP を Apache モジュールとして使用する場合、関数 'pcntl_fork' を使用することはできません。pcntl_fork は、CGI モードまたはコマンドラインからのみ使用できます。

この関数を使用すると、「致命的なエラー: 未定義の関数への呼び出し: pcntl_fork()」という結果になります。

于 2012-08-31T11:52:53.017 に答える
2

これが解決策です:

posix_kill(getmypid(), SIGKILL);

の代わりにexit()

于 2012-09-05T08:38:24.800 に答える