为什么mod_wsgi不支持Windows上的守护进程模式?

5 投票
2 回答
2871 浏览
提问于 2025-04-16 14:02

http://code.google.com/p/modwsgi/ 上可以看到这样一段话:

mod_wsgi 的守护进程模式只在运行 UNIX 的 Apache 2.0 或 2.2 版本时可用,并且前提是 Apache 的运行库必须支持多线程。

为什么在 Windows 上不支持守护进程模式呢?

我在遇到以下错误后发现了这段话:

Invalid command 'WSGIDaemonProcess', perhaps misspelled or defined by a module not included in the server configuration

这个错误来自 Apache。问题并不是因为模块没有包含,因为 WSGIScriptAlias 指令是正常工作的。我猜我遇到的错误是由于 mod_wsgi 的维基上描述的限制。

2 个回答

2

对于那些在阅读了Graham的回答后,想了解Windows上fork()更多信息的人,这里有一些相关的问题:

Windows上最接近fork()的是什么?
在Windows中,有什么可以替代fork()的?
CreateThread和fork()有什么区别?
Windows服务器应用程序的fork/chroot等价物是什么?
微软Windows 7的POSIX实现目前处于什么状态?

在上面提到的讨论中,有两个有趣的内容:

  • Interix - 这是一个可选的、功能齐全的POSIX和Unix环境子系统,适用于微软的Windows NT系列操作系统。

  • Cygwin的fork实现

此外,我还问了Interix是否实现了fork()?

7

Windows系统没有像UNIX那样的fork()这个系统调用,所以在Windows上无法像在UNIX中那样创建子进程,子进程不能继承父进程的内存内容。而Apache/mod_wsgi这个工具是需要用到fork()的。

撰写回答