PHP – 由pcntl_fork启动的杀死子进程

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP – 由pcntl_fork启动的杀死子进程脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用pcntl_fork启动子进程以通过SMTP发送邮件.

子进程使用PEAR Mail包发送电子邮件,但问题是如果远程服务器没有响应该进程只是永远运行等待响应,无论PHP.ini中设置的任何时间限制.

为了解决这个问题,我使用pcntl_alarm函数在30秒后触发一个函数,如果它仍然在运行,则会终止子进程.

function handlesig($sig) {
    global $pid,$node,$resend;
    posix_kill($pid,SIGKILL);
    MysqL_query("insert into LOG (event) values ('Timed out!')");
}

当我杀死子进程时,虽然我在系统上留下了一个已经失效的进程.

是否一个不同的信号我应该使用它仍然会迫使子进程死而不等待连接(因为连接永远不会完成)并避免建立已失效的进程?

您需要如上所述等待它,或者使用 posix_setsid使子进程与父进程分离

脚本宝典总结

以上是脚本宝典为你收集整理的PHP – 由pcntl_fork启动的杀死子进程全部内容,希望文章能够帮你解决PHP – 由pcntl_fork启动的杀死子进程所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。