2009-09-12 35 views
0

我在開發機器上使用Lighttpd + FastCGI + Django。我通過manage.py的命令行選項啓動FastCGI服務器。Lighttpd,FastCGI,Django - 如何自動重啓?

問題是我經常對源進行更改,我需要讓FastCGI自動獲取這些更改,就像「./manage.py runserver」一樣。

是否有命令行選項,或許還有其他解決方案?

回答

2

你看過manage.py的runserver部分的代碼嗎?我發現沒有理由不能將這些代碼複製粘貼到自定義的manage.py腳本中,並將其設置爲在檢測到更改時運行lighty restart命令。

或者,您可以運行沒有使用包像pyinotify中重新啓動一個單獨的Python程序:

http://trac.dbzteam.org/pyinotify

0

如果有人曾經得到這個工作,我不知道?我曾嘗試推行重載機制使用Django的autoreload.py,不幸的是,我得到的錯誤,當叉發生,如:

的Django /核心/服務器/ fastcgi.py」,線路180,在runfastcgi WSGIServer(WSGIHandler() ,** wsgi_opts).run()運行 文件「build/bdist.freebsd-6.4-RELEASE-p9-amd64/egg/flup/server/fcgi_fork.py」 -6.4-RELEASE-p9-amd64/egg/flup/server/preforkserver.py「,行119,運行 文件」build/bdist.freebsd-6.4-RELEASE-p9-amd64/egg/flup/server/preforkserver。 Py「,行450,在_installSignalHandlers ValueError:信號只在主線程中工作

我的ide安裝程序將能夠重新加載/終止我的fcgi進程,並在每次檢測到代碼更改後啓動一個新進程,類似於django如何在內部服務器上執行此操作。我也嘗試從autoreload.py中移除線程,以避免這個錯誤,但它似乎並沒有正確運行服務器(仍在調查中)。

也許有人在django的settings.py文件中嘗試過CherryPies autoreload.py?