主管没有使用 Django 项目正确地重新加载 Gunicorn

Supervisor not reloading Gunicorn properly with Django project

在将 Django 项目推送到生产环境时,我正在使用 Supervisor 重新加载 Gunicorn :

工作流程

          " && python manage.py migrate"\
          " && python manage.py collectstatic --noinput"\
          " && supervisorctl restart frontdesk-gunicorn"\
          " && exit"

主管配置 :

   [program:project-gunicorn]
    command=/home/gaetangr/project/myprojectenv/bin/gunicorn config.wsgi:application
    user = gaetangr
    directory = /home/gaetangr/project
    autostart = true
    autorestart = true

但大多数时候,为了传播所有更改,我必须执行 sudo :

systemctl restart gunicorn

根据我的理解,主管的命令应该完全相同。

有什么想法吗?

过了一段时间我弄明白了所以给你。

我本来用一个service到运行Gunicorn,就是这样安静了一段时间,后来我发现这个:

superviserd manages processes by creating subprocesses. If you start gunicorn with systemctl then superviserd won't know anything about this gunicorn and won't be able to restart it. Use only one process managment system - either supervisord or systemd.

在我的例子中,我不得不删除服务 运行ning Gunicorn 以及套接字,并更新我的 Nginx 配置以删除 Gunicorn 的代理服务 link。