【发布时间】:2015-02-23 03:55:15
【问题描述】:
在关注this awesome tutorial 使用 Gunicorn、PostgreSQL 和 Nginx 安装 Django 时,我发现我无法按照建议使用 Supervisor,因为它不适用于 Python 3。
由于 systemd 是我的 Centos 7 服务器上的默认服务管理器,我创建了一个 unit file 来按照教程运行 gunicorn。但是,它失败并出现“no SECRET_KEY set”和“no PostgreSQL password supplied”等错误。
由于在 systemd 之前一切都已经正常工作,因此这些错误很奇怪。
像许多其他人一样,我将我的秘密 Django 设置保存为环境变量,以免公开存储在我的 git 存储库中。但是,this page 解释说我的 ~/.bashrc 中的环境变量将无法识别,因此我必须让 systemd 可以访问这些变量。
我在下面为任何在通过 systemd 运行 Django 时遇到同样困难的人总结了我的解决方案。
更新: 最好的解决方案允许 systemd 在不损害 Django 的情况下工作。虽然可以直接在 systemd 单元文件中声明环境变量,但是当 不 作为系统守护进程运行或通过 Python shell 调试时,这使得 Django 无法访问这些变量。
【问题讨论】:
标签: django postgresql gunicorn systemd