【发布时间】:2013-08-07 07:20:15
【问题描述】:
我在 Apache2.2 上运行一个 Django 站点,其中 mod_wsgi 3.3 处于守护程序模式(在 Debian Wheezy 上)。
当我在我的 shell 中对我的 WSGI 脚本使用 touch wsgi.py 命令时,会重新加载进程并且一切正常。但是,当我从 web 应用程序代码修改 wsgi.py 文件时,修改时间正确更改(由 stat 检查)但 WSGI 进程 没有重新启动。在运行 WSGI-daemon 时手动触摸文件时,我使用的是相同的用户帐户。
我尝试了以下两种方法从 web-app 代码中“触摸”文件,但都不起作用:
- os.system('touch /abs/path/to/wsgi.py')
- 使用 django-rosetta 的 ROSETTA_WSGI_AUTO_RELOAD 设置为我完成这项工作
上面的两个选项实际上似乎与我从 shell 手动执行 touch 时完全一样。他们会更新所有访问、修改和更改文件属性(我正在使用 ext4,如果这很重要的话)。
我知道这真的很奇怪,在我阅读了所有文档之后,我感到绝望。有没有人至少知道可能是什么原因?
【问题讨论】: