uWSGI touch-reload 功能在 CPU 100% 的情况下无法使用

uWSGI touch-reload 功能在 CPU 100% 的情况下无法使用

在我的开发机上,我已将 uWSGI 配置为每次文件被触碰时重新加载(使用 --touch-reload 命令行参数)。当我指定一个不存在的文件时,我会在 uWSGI 日志中收到警告。如果我指定一个现有文件(例如/data/reload.uwsgi),则日志中不会显示任何内容,这意味着设置可能没事的。

问题在于:无论何时touch /data/reload.uwsgi,uWSGI 都不会重新加载。日志没有显示任何特殊内容(浏览源代码显示我应该得到某种确认,表明受监控的文件已被触及)。

但有一件事:所有 uwsgi 进程都开始占用所有可用的 CPU 能力,直到我停止该服务。

uWSGI 仍然有效,但是使用的是“旧”的 Python 代码,而不是重新加载的代码。

我遗漏了什么?这是错误还是其他什么?

提前致谢,

罗曼


顺便说一下,我正在使用uWSGI 0.9.7.2。uWSGI和 Python 在FreeBSD 8.2 AMD64Python 2.7.1监狱

我尝试过像/data/reload.uwsgi或 这样的文件/tmp/reload.uwsgi,但都不起作用。我甚至尝试将这些文件的所有权转交给用户www(运行 uwsgi 进程的用户),但没有成功。为了记录,下面是/etc/rc.conf运行 uWSGI 服务的命令行:

uwsgi_flags="-p 2 -M -t 30 -C --pythonpath /data/app -w <APPNAME> --uid www --gid www -L -d /var/log/uwsgi.log --post-buffering 8192 --touch-reload /data/reload.uwsgi"

答案1

这是FreeBSD的一个bug,查看最新提示,已经修复

相关内容