在生产中自动优雅地重新装上炮弹

我有一个自动部署工作stream程,将代码推送到我的生产服务器,并触发数据库迁移,静态文件更新等。问题是,gunicorn不会自动重新加载代码更改没有开发选项 – --reload ,他们build议不使用生产。 相反,指令是发送一个HUP信号给masterpid 。 问题是,我不知道如何在自动脚本中检索masterpid ,尽pipe手动操作很简单。

如何在bash脚本中检索gunicorn systemd进程的materpid值?

将以下内容添加到gunicorn的systemd服务文件中,或将其添加为覆盖:

 ExecReload=/bin/kill -HUP $MAINPID 

然后你可以重新加载systemctl reload gunicorn