如何在Supervisor执行的命令中导出环境变量?我第一次尝试:
command="export SITE=domain1; python manage.py command"
Run Code Online (Sandbox Code Playgroud)
但是Supervisor报告"找不到命令".
那么我试过:
command=/bin/bash -c "export SITE=domain1; python manage.py command"
Run Code Online (Sandbox Code Playgroud)
并且命令运行,但这似乎干扰了守护进程,因为当我停止Supervisor守护进程时,它正在运行的所有其他守护进程都没有停止.
作为实践,我尝试在 DigitalOcean Ubuntu 16.04.4 上使用 Django Channels 2.1.1部署 Andrew Godwin 的多聊天示例。但是,我不知道如何在不停止 Channels 的 Daphne 服务器的情况下退出 Ubuntu 服务器。
现在,几乎我对部署的全部熟悉都来自本教程,这就是我部署站点的方式。但是根据 Channels 的文档,我必须在生产中运行这三个中的一个才能启动 Daphne:
因此,除了遵循 DigitalOcean 教程之外,我还运行了这些教程。第三个对我有用,网站运行良好。但是,如果我在 Ubuntu 上退出 shell,Daphne 也会停止。
本教程让 gunicorn 访问 sock 文件 ( --bind unix:/home/sammy/myproject/myproject.sock),到目前为止,在我的研究中,我在 2018 年之前发布的几个网站上看到,以某种方式生成了 daphne.sock 文件。所以,我猜 Channels 部署类似?但我还没有看到有关如何完成的任何细节。
如何部署多聊天示例,以便我可以在不让 Daphne 停止的情况下退出 Ubuntu Web 服务器?
更新 2018 年 5 月 6 日,欧洲中部时间晚上 8 点:
我在下面尝试了 kagronick 的解决方案,并在 …