django/gunicorn 应用重启

标签 django gunicorn

我在同一台服务器上运行了 2 个不同的项目。它们都是以 Gunicorn 作为 wsgi 服务器的 Django 项目。上面的服务器是 Apache。目前有一个 Jenkins 作业可以从 repo 更新源代码并重新启动(杀死并启动)gunicorn。这工作正常,直到服务器只服务于 1 个站点。 我杀了gunicorn如下

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

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

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

你们有其他我应该遵循的建议或最佳做法吗?

谢谢

最佳答案

要仅获取项目的 gunicorn 并重新启动它,您可以使用以下命令:

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

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

关于django/gunicorn 应用重启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32702635/

相关文章:

python - Django 属性错误 : module 'appname' has not attribute models

python - django gunicorn sock 文件不是由 wsgi 创建的

python - 如何在生产中使用 gunicorn 和 nginx 托管 2 个 Django 应用程序

flask - 如何在 .kitchen.yml 中传递环境变量来测试厨房

python - Flask SocketIO 的正确配置

python - Django:Celery Worker 未启动(没有任何错误)

django - 防止 get_object 在 DRF 中多次命中 DB

django - 如何在可重复使用的应用程序中将 namespace url与Django一起使用

python - heroku 上的 django : ImportError: cannot import name get_path_info

django - 在 Nuxt Auth 中设置 session ID Cookie