2015-02-23 59 views
1

不能正常工作時,以下this awesome tutorial與Gunicorn,PostgreSQL和Nginx的安裝Django的,我發現我不能用戶監督員的建議,因爲它不與Python 3Django和Gunicorn通過systemd

工作由於systemd是我的Centos 7服務器上的默認服務管理器,因此我按照教程創建了一個unit file來運行gunicorn。但是,由於諸如「no SECRET_KEY set」和「no PostgreSQL password supplied」等錯誤而失敗。 因爲在systemd之前所有的東西都已經工作了,所以這些錯誤很奇怪。

像許多其他人一樣,我將我的祕密Django設置保存爲環境變量,以免公開存儲在我的git倉庫中。但是,this page解釋了我的〜/ .bashrc中的環境變量不能被識別,所以我必須讓這些變量可以被systemd訪問。

我總結了我的解決方案,對於任何與通過systemd運行Django有同樣困難的人來說。

UPDATE: 最好的解決方案允許systemd在不影響Django的情況下工作。雖然可以直接在systemd單元文件中聲明環境變量,但是當而不是作爲系統守護程序運行或通過Python shell進行調試時,這使得Django無法訪問這些變量。

回答

1

只要systemd設備從EnvironmentFile=的文件中讀取環境。

[Service] 
EnvironmentFile=-/whatever/django_environment_settings 
+0

我澄清了我的答案。如果使用EnvironmentFile設置,則可以限制Django使用systemd工作_only_。 – ZG101 2015-06-09 06:25:56

+0

不,您不指定單位文件中的環境變量,您指向包含它們的外部文件。這將繼續與您的方法一起工作。 – 2015-06-13 17:56:05