gpt4 book ai didi

django - 在 'git pull' 我的 Django 项目之后重启/重新加载 Gunicorn(通过 Upstart)的更好方法

转载 作者:行者123 更新时间:2023-11-28 19:33:59 25 4
gpt4 key购买 nike

每次我发出 git pull origin master 时,我都在寻找比 sudo restart projectname 更好的东西,它将我对 Django 项目的最新更改拉下来。我相信,这个 restart 命令与 Upstart 有关,我用它来启动/关闭我的 Gunicorn 服务器进程。

这次重新启动会导致短暂的中断。访问 Web 服务器 (nginx) 的用户将获得 500,因为 Gunicorn 仍在重新启动。事实上,它似乎立即重启,但页面加载需要几秒钟。

关于如何无缝衔接的任何想法?理想情况下,我想发出我的 git pull 并自动重新加载 Gunicorn。

最佳答案

您可以像这样使用 HUP 信号告诉 Gunicorn 优雅地重新加载:

kill -HUP <pid>

(详见FAQ)

我使用 Supervisor 来控制我的 Gunicorn 服务器,这让我可以在部署后使用这种(有点怪异的)方式重新加载 Gunicorn:

supervisorctl status gunicorn | sed "s/.*[pid ]\([0-9]\+\)\,.*/\1/" | xargs kill -HUP

您显然可以使用 pidofps 实现类似的效果。

这实际上是从 Fabric 脚本运行的,所以我根本不需要登录到服务器。

关于django - 在 'git pull' 我的 Django 项目之后重启/重新加载 Gunicorn(通过 Upstart)的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9881819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com