为什么mod_wsgi不支持Windows上的守护进程模式?
在 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系列操作系统。
此外,我还问了Interix是否实现了fork()?
7
Windows系统没有像UNIX那样的fork()这个系统调用,所以在Windows上无法像在UNIX中那样创建子进程,子进程不能继承父进程的内存内容。而Apache/mod_wsgi这个工具是需要用到fork()的。