我打算在環境變量中存儲一些應用程序設置,例如MYSQL_URL = mysql:// ...我使用supervisord來管理應用程序進程。如何在子進程啓動之前加載環境變量?特別是當這些設置被改變時,我希望重新啓動子進程將加載新的設置。執行前加載環境變量
另外我想知道在哪裏存儲這些環境變量。我可以「導出$(貓文件名)」的文件?或者一些更好的方法。我很好奇Heroku如何管理它的環境變量。
我打算在環境變量中存儲一些應用程序設置,例如MYSQL_URL = mysql:// ...我使用supervisord來管理應用程序進程。如何在子進程啓動之前加載環境變量?特別是當這些設置被改變時,我希望重新啓動子進程將加載新的設置。執行前加載環境變量
另外我想知道在哪裏存儲這些環境變量。我可以「導出$(貓文件名)」的文件?或者一些更好的方法。我很好奇Heroku如何管理它的環境變量。
您可以在[program:x
]部分supervisord配置設置每個進程的環境變量,這些將被傳遞到過程:
[program:yourprocess]
# ... other settings
environment =
MYSQL_URL=mysql://,
OTHER_VAR="some other value"
請注意,您需要使用之間的逗號每個變量。在上面的例子中我也使用了換行符,這些都是可選的。如果您的環境值中包含空格,則需要將該值放在引號中。
您還可以使用相同的格式在[supervisord]
部分中設置所有進程的環境變量。
最後但並非最不重要的是,當supervisord啓動時設置的任何環境變量都會傳遞給supervisord管理的進程。詳情請參閱documentation section on environment variables。
請注意,如果你改變了配置文件中配置環境變量,你需要發信號給supervisord重新加載配置並重新啓動子進程爲他們拿起這些變化:
supervisorctl update
supervisorctl restart yourprocess
如果但是你改變supervisord的外部環境變量,你需要關閉所有supervisord共同它們挑出來:
supervisorctl shutdown
supervisord
據the docs了「supervisord.conf
包含一個名爲[supervisord
在全局設置部分」,如environmont
變量,可以設置。 (在鏈接頁面上,搜索單詞「環境」)。
環境變量也可以是set an a per-program basis。
當它開始
失敗的目的,如果你還保存在版本控制你的上司的配置文件 – Dustin 2014-08-29 22:16:06
@Dustin爲r飛行。有沒有解決的辦法?也許某種包含文件? – surjikal 2014-12-18 07:55:03
@surjikal:使用buildout等工具生成配置文件。 – 2014-12-18 08:10:18