Django/Gunicorn应用程序重启

3

我在同一台服务器上运行了2个不同的项目。它们都是使用Gunicorn作为wsgi服务器的Django项目。顶部的服务器是Apache。目前有一个Jenkins任务,可以从仓库更新源代码并重新启动(杀死和启动)gunicorn。这在服务器只服务1个站点时运行良好。 我按以下方式杀死了gunicorn

#!/bin/bash
ps -ef | grep gunicorn | grep -v grep  | awk '{print $2}' | xargs  kill -9

我重新启动了它。然而,这种方法对于两个站点来说是行不通的,因为完全杀死Gunicorn会导致所有Gunicorn进程都被杀死。每次运行构建时,只有该站点的Gunicorn会重新生成。

我四处寻找并发现Supervisor是一个应该使用的实用程序,可以防止这种情况,并无缝地重启Gunicorn。

你们有其他建议或最佳实践应该遵循吗?

谢谢

2个回答

3

如果你只想获取你的项目的gunicorn并重启它,你可以使用以下命令:

ps aux |grep gunicorn |grep yourappname | awk '{ print $2 }' |xargs kill -HUP

其他gunicorn进程不会受到影响。


1
"Gunicorn+Supervisor是一种很常见的堆栈,您可以将您的站点分别作为不同的Supervisor任务进行分离,而不是告诉Jenkins重新启动Supervisor,使用Supervisor方法只重启其中一个任务即可完成。如果您的站点崩溃并且需要重新执行Gunicorn,则Supervisor也非常适用。"

感谢您的回复。 - tkansara

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接