在不终止Python服务的情况下重新加载mod_fcgid

在不终止Python服务的情况下重新加载mod_fcgid,python,django,mod-fcgid,Python,Django,Mod Fcgid,我目前正在学校的Web服务器上用FCGI运行一个Django项目。我确实遵循了建议安装虚拟本地Python环境的多个指南,结果非常好。我遇到的唯一问题是,仅仅触摸我的fcgi文件来重新加载源文件是不够的,但是我不得不通过SSH终止python服务。这是因为使用了mod_fcgid 然而,管理员认为我运行自己的本地python不是一个好主意。他认为如果我告诉他在root上安装什么模块会更好,这是一个非常好的服务 但这样做,我再也不能杀死python了,因为它已经在根下了。尽管我不道德,但我确实试过

我目前正在学校的Web服务器上用FCGI运行一个Django项目。我确实遵循了建议安装虚拟本地Python环境的多个指南,结果非常好。我遇到的唯一问题是,仅仅触摸我的fcgi文件来重新加载源文件是不够的,但是我不得不通过SSH终止python服务。这是因为使用了mod_fcgid

然而,管理员认为我运行自己的本地python不是一个好主意。他认为如果我告诉他在root上安装什么模块会更好,这是一个非常好的服务

但这样做,我再也不能杀死python了,因为它已经在根下了。尽管我不道德,但我确实试过了。管理员的建议是,我也应该尝试通过检查时间戳来重新加载fcgi脚本。我试图找到关于如何做到这一点的文档,但资金很少,因为我是一个绝对的初学者,我不知道什么会起作用。
任何人都有在mod_fcgid下运行python/django的经验,或者有在哪里找到相关指南/文档的提示吗?

以下是我要做的:

## top of my .fcgi script
import sys, time
original_modules = sys.modules.copy()

## in a separate thread
old_ctime = os.path.getctime("mymodule.py")
while True:
    time.sleep(10)
    new_ctime = os.path.getctime("mymodule.py")
    if new_ctime > old_ctime:
        sys.modules = original_modules # reset all imports
        import mymodule
        mymodule.dofcgi()

虽然这不是一个完美的插件,但你可能不得不把线程弄得一团糟,但它应该能让你大致了解如何完全重新加载模块。

谢谢!这似乎与我脑海中的伪想法也很相似,但对于如何实施却一无所知。