我正在寻找比sudo restart projectname
每次我发出git pull origin master
,它会下载我对 Django 项目的最新更改。这restart
我相信该命令与 Upstart 有关,我用它来启动/停止我的 Gunicorn 服务器进程。
此重新启动会导致短暂的中断。用户访问 Web 服务器 (nginx) 将得到 500,因为 Gunicorn 仍在重新启动。事实上,它似乎立即重新启动,但页面加载需要几秒钟。
关于如何做到这一点有什么想法吗?理想情况下,我想发布我的git pull
Gunicorn 会自动重新加载。
您可以使用以下命令告诉 Gunicorn 优雅地重新加载HUP
像这样发出信号:
kill -HUP <pid>
(参见FAQ http://docs.gunicorn.org/en/latest/faq.html#how-do-i-reload-my-application-in-gunicorn详情)
I use 导师 http://supervisord.org/控制我的 Gunicorn 服务器,这允许我在部署后使用这种(有点 hacky)的方式重新加载 Gunicorn:
supervisorctl status gunicorn | sed "s/.*[pid ]\([0-9]\+\)\,.*/\1/" | xargs kill -HUP
你显然可以实现类似的东西pidof
, or ps
.
这实际上是从一个运行的Fabric http://fabfile.org脚本,所以我什至根本不需要登录服务器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)