gpt4 book ai didi

php - 来自 pcntl_fork 的进程未终止

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:33 27 4
gpt4 key购买 nike

我正在运行一个涉及 php+apache2 守护进程的 web 服务。所以我尝试了 pcntl_fork 函数。但是有一个问题,即使我在子进程的代码中使用了 exit(0) ,子进程也没有终止,这导致了很多 apache2 进程。

我想知道是否有办法关闭那些无用的 apache2 进程?

PS:因为我不是很了解信号机制,所以我尝试通过对代理脚本的一次调用来创建守护进程,该脚本将在创建子进程后立即退出。

switch ($_GET['action']){
case "new":
$pid = pcntl_fork();
switch ($pid){
case -1:
echo "failed to create daemon";
exit;
case 0:
//Code here
exit(0);
break;
default:
echo "Daemon PID:$pid";
}
}

我打算使用一个文件来控制守护进程。例如,我将在守护程序的控制文件(如“1.txt”)中附加一行“exit”,以让它自行关闭。

PPS:看完这个话题:pcntl_fork() results in defunct parent process , 我很好奇僵尸进程的 bug 是否导致了这个 bug。

最佳答案

你应该必须使用这个函数:

http://php.net/manual/en/function.pcntl-wait.php

但通常在 Apache 下 fork 可能不是一个好主意。

关于php - 来自 pcntl_fork 的进程未终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19546588/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com