2015-09-21 63 views
2

我有两个不同的项目在同一台服务器上运行。他们都是Django项目,Gunicorn是wsgi服务器。顶部的服务器是Apache。目前有一个Jenkins的工作,更新回购的源代码并重新启动(杀死并启动)gunicorn。这工作得很好,直到服务器只提供1个站点。 我杀了gunicorn如下django/gunicorn应用程序重新启动

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

,然后重新启动它。然而,这种方法将不会与2个地点,因为杀死Gunicorn完全杀死所有Gunicorn进程。在任何时候我运行构建,只有那个网站的gunicorn将会重新生成。

我环顾四周,发现主管是我应该用来防止这种情况并无缝重新启动Gunicorn的一个实用程序。

你们有没有其他的建议或最佳实践,我应该遵循?

感谢

回答

1

Gunicorn +监督员是非常标准的堆栈,你可以让你的网站分隔为不同的主管任务,而不是告诉詹金斯重新启动监事,使用监督员方法重启只是你的任务之一,而你'重做。

如果您的站点崩溃并且Gunicorn需要重新执行,主管也非常棒。

+0

感谢您的回复。 – tkansara