代码之家  ›  专栏  ›  技术社区  ›  Art

lighttpd,fastcgi,django-如何自动重启?

  •  0
  • Art  · 技术社区  · 15 年前

    我在dev机器上使用lighttpd+fastcgi+django。我通过manage.py的命令行选项启动fastcgi服务器。

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

    是否有一个命令行选项,也许,或任何其他解决方案?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Paul McMillan    15 年前

    您看过manage.py的runserver部分中进行监视的代码吗?我看不出任何原因,您不能将粘贴的代码复制到自定义的manage.py脚本中,并将其设置为在检测到更改时运行lighty restart命令。

    或者,您可以运行一个单独的python程序,使用类似pyinotify的包重新启动:

    http://trac.dbzteam.org/pyinotify

        2
  •  0
  •   jmat    14 年前

    我想知道是否有人能让这个工作?我尝试使用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/preworkserver.py”,第119行,运行中 文件“build/bdist.freebsd-6.4-release-p9-amd64/egg/flup/server/preworkserver.py”,第450行,in installsignalhandlers 值错误:信号仅在主线程中工作

    我的理想设置是能够重新加载/终止我的fcgi进程,并在每次检测到代码更改后启动一个新的进程,类似于Django在其内部服务器上执行此操作的方式。我还尝试从autoreload.py中删除线程,以避免出现此错误,但它似乎无法正确运行服务器(仍在调查这一问题)。

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