我正在尝试部署我的应用程序,我的文件夹组织方式意味着当我想要部署新版本时,我只需更改符号链接。就像这样:
./2013-07-16-10-12-48-test/
./2013-07-16-10-17-01-test/
./current -> 2013-07-16-10-17-01-test/
通常情况下,只要目录不变,我会简单地使用kill -HUP master-pid
,一切都能正常工作。但是当我先更改符号链接,然后重新加载代码时,它仍然通过其绝对路径从旧目录运行,就像gunicorn在跟随符号链接并保存最终路径。我像这样启动gunicorn:gunicorn run:app -c gunicorn-config.py
,位于“current”目录中,我的配置文件如下:
workers = 4
worker_class = 'gevent'
bind = '127.0.0.1:5000'
pidfile = '/var/run/gunicorn.pid'
debug = False
loglevel = 'debug'
errorlog = '/var/log/gunicorn-error.log'
daemon = True
有没有办法让gunicorn重新评估符号链接,或者只保存符号链接而不是完整路径?也许在某种类型的on_starting
或on_reload
挂钩中?
这里有一个我无法使其工作的解决方案,也许可以提供更多上下文信息。