Lighttpd,FastCGI,Django - 如何自动重启?

时间:2009-09-12 15:12:56

标签: django lighttpd fastcgi

我在开发机器上使用Lighttpd + FastCGI + Django。我通过manage.py的命令行选项启动FastCGI服务器。

问题是我经常对源进行更改,我需要让FastCGI自动获取这些更改,就像“./manage.py runserver”一样。

是否有针对该解决方案的命令行选项或任何其他解决方案?

2 个答案:

答案 0 :(得分:2)

您是否查看过执行监控的manage.py的runserver部分中的代码?我认为没有理由不能将该代码复制粘贴到自定义manage.py脚本中,并将其设置为在检测到更改时运行lighty restart命令。

或者,您可以运行一个单独的python程序,使用像pyinotify这样的包重启:

http://trac.dbzteam.org/pyinotify

答案 1 :(得分:0)

我想知道是否有人让这个工作?我尝试使用django的autoreload.py实现重装机制,不幸的是,当fork出现时我得到错误:

django / core / servers / fastcgi.py“,第180行,在runfastcgi中     WSGIServer(WSGIHandler(),** wsgi_opts).run()   文件“build / bdist.freebsd-6.4-RELEASE-p9-amd64 / egg / flup / server / fcgi_fork.py”,第140行,运行中   文件“build / bdist.freebsd-6.4-RELEASE-p9-amd64 / egg / flup / server / preforkserver.py”,第119行,运行中   在_installSignalHandlers中输入文件“build / bdist.freebsd-6.4-RELEASE-p9-amd64 / egg / flup / server / preforkserver.py”,第450行 ValueError:signal仅适用于主线程

我理想的设置是能够重新加载/杀死我的fcgi进程并在每次检测到代码更改后启动一个新进程,类似于django对内部服务器的处理方式。我也尝试从autoreload.py中删除会遇到此错误的线程,但它似乎没有正确运行服务器(仍在调查)。

也许有人在django的settings.py文件中尝试过CherryPies autoreload.py?