我這個代碼分叉:PHP PHP分叉-FPM與pcntl_fork()
echo "1. posix_getpid()=".posix_getpid().", posix_getppid()=".posix_getppid()."\n";
$pid = pcntl_fork();
var_dump($pid);
if ($pid == -1) die("could not fork");
if ($pid) {
//parent
echo "2. pid=".$pid.", posix_getpid()=".posix_getpid().", posix_getppid()=".posix_getppid()."\n";
} else {
//child
$sid = posix_setsid();
if ($sid < 0)
exit;
echo "3. pid=".$pid.", posix_getpid()=".posix_getpid().", posix_getppid()=".posix_getppid()."\n";
$fp = fopen("/tmp/testfile", "w");
fwrite($fp, '$data');
fclose($fp);
}
出於某種原因,有時else塊被髮送給瀏覽器,有時如果($ PID)塊顯示。
我想實現的是發送一些響應,然後在與客戶端的連接關閉後繼續處理。然後在請求後處理完成後最後關閉。如果我睡在孩子或父母的請求掛在那裏。
雖然這兩個部分都在執行,但在確定將哪些內容發送到瀏覽器時很奇怪。
在此先感謝。
我可以明確關閉連接嗎?因爲看起來連接到客戶端一直保持到用戶中止。 – Chris 2010-02-20 02:55:35