我想知道是否有人曾经使用此设置自动重新加载fcgi?这个工作?我尝试使用django的autoreload.py实现重载机制(将其复制到我自己的位置并调用autoreload.main(start),不幸的是,当fork出现时我得到错误:
django/core/servers/fastcgi.py", line 180,
in runfastcgi WSGIServer(WSGIHandler(), **wsgi_opts).run()
File "build/bdist.freebsd-6.4-RELEASE-p9-amd64/egg/flup/server/fcgi_fork.py", line 140,
in run
File "build/bdist.freebsd-6.4-RELEASE-p9-amd64/egg/flup/server/preforkserver.py", line 119,
in run
File "build/bdist.freebsd-6.4-RELEASE-p9-amd64/egg/flup/server/preforkserver.py", line 450,
in _installSignalHandlers ValueError: signal only works in main thread
我理想的设置是能够重新加载/杀死我的fcgi进程并在每次检测到代码更改后启动一个新进程,类似于django对内部服务器的处理方式。我也尝试从autoreload.py中删除会遇到此错误的线程,但它似乎没有正确运行服务器(仍在调查)。
也许有人在django的settings.py文件中尝试过CherryPies autoreload.py?
答案 0 :(得分:0)
我使用这种技术让它工作: http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode 使用监视器脚本,在我加载fastcgi进程之前运行它以及来自supervisord的一些帮助使这个工作。