2012-08-05 38 views
8

Bazı uygulama ayarlarını MYSQL_URL = mysql: // gibi ortam değişkenlerinde depolamayı planlıyorum. Uygulama işlemini yönetmek için süpervizör kullanıyorum. Alt süreç başlatılmadan önce ortam değişkenleri nasıl yüklenir? Özellikle bu ayarlar değiştirildiğinde, alt-işlemin yeniden başlatılmasının yeni ayarları yükleyeceğini umuyorum.Ortam değişkenini çalıştırmadan önce ortam değişkeni

Ayrıca bu ortam değişkenlerini nerede saklayacağımı merak ediyorum. "$ (Cat dosyaadı) dışa aktarabileceğim bir dosya"? Ya da bazı daha iyi yollar. Heroku'nun çevre değişkenlerini nasıl yönettiğini merak ediyorum.

cevap

19
Bunu [ program:x] bölümünde supervisord yapılandırmasında her işlem ortam değişkenleri ayarlayabilirsiniz

, bu süreçte geçilecek başlatıldığında: Eğer arasına virgül kullanmaya gerek

[program:yourprocess] 
# ... other settings 
environment = 
    MYSQL_URL=mysql://, 
    OTHER_VAR="some other value" 

Not her değişken. Yukarıdaki örnekte de yeni satırlar kullandım, bunlar isteğe bağlı. Ortam değerlerinizde boşluk varsa, değeri tırnak içine almanız gerekir.

Ayrıca aynı formatı kullanarak, [supervisord] bölümünde tüm işlemleri için ortam değişkenlerini ayarlayabilirsiniz.

Son olarak, süpervizörün ne zaman başlatıldığını belirleyen ortam değişkenleri, denetim otoritesi tarafından yönetilen süreçlere de aktarılır. Detaylar için documentation section on environment variables'a bakın.

yapılandırma dosyasında yapılandırılmış ortam değişkenleri değiştirirseniz kurarak değişiklikleri almak için, yapılandırmayı yeniden ve alt süreçleri yeniden supervisord için sinyal gerekir unutmayın yapın:

supervisorctl update 
supervisorctl restart yourprocess 

ise Eğer supervisord dışında çevre değişkenleri değiştirmek ancak, bu almaya supervisord hep birlikte kapatmaya gerekir:

supervisorctl shutdown 
supervisord 
+3

yenilgilere amacı da sürüm kontrolü amiriniz yapılandırma dosyasını depolamak eğer – Dustin

+1

@Dustin r ight. Bunun etrafında bir yolu var mı? Belki bir çeşit dosya içerir? – surjikal

+0

@surjikal: config dosyasını buildout gibi bir araçla oluştur. –

0

the docs göre böyle environmont değişkenler olarak ayarlanabilir "supervisord.conf genel ayarlar hangi [supervisord adlı bir bölüm içeriyor". (Bağlantılı sayfada, "ortam" kelimesini arayın).

Ortam değişkenleri set an a per-program basis olabilir.

İlgili konular