在带有 mod_fastcgi 的 Windows 服务器上使用 apache,C 代码如下所示:
void main() {
init();
while (FCGI_Accept() >= 0)
work();
cleanup();
}
当服务被关闭时(即:net stop apache2),进程终止而没有到达清理代码。
我在这里错过了什么?
最佳答案
从阅读FCGI_Accept
联机帮助页和this FAQ entry 看来,事实上,FCGI_Accept
在 Apache 关闭的情况下不会返回 -1。尝试为 SIGUSR1 和 SIGTERM 设置信号处理程序。前一段时间发布了一个示例(不是特定于 Windows,但值得一试)on a mailing list, here.
关于c++ - FastCGI 清理代码在 Windows 下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/661818/