Danışman: $ PATH'a nasıl eklenir


23

Bir süpervizör program yapılandırmasında varsayılan yola nasıl ekleneceğini çözemiyorum.

Yolu sıfırlayabilirim:

environment=PATH="/home/site/environments/master/bin"

Ama denediğimde:

environment=PATH="/home/site/environments/master/bin:$PATH"

Denetçinin değerlendirmediğini görüyorum $PATH.

Google bunun için büyük bir yardım değildi, nedense ilk ihtiyacı olan kişi olduğuma inanamıyorum.

Denetim otoritesinin bunun için desteği olmalı, herhangi bir fikir var mı?


1
@ascobol hayır, şimdilik ihtiyacım olan yolu
kodladım

2
supervisordconfig dosyasındaki değişkenleri önceden işlemek için shell'i çalıştırmayın, bu nedenle değişkenleri genişletmek için shell ifadelerini kullanamazsınız. Yapılmasına izin veren bir yama olmasına rağmen %($PATH)2011'deki posta listelerinde tartışıldı, ancak AFAIK hala ana kaynak ağacına dahil edilmedi. Geçici bir çözüm olarak, ortamı ayarlayacak ve bağımsız değişkenlerde sağlanan bir komutu çalıştıracak bir komut dosyası oluşturabilirsiniz. Sonra sen sadece senaryoyu supervisordbenzerlerinden çalıştırıyorsuncommand /usr/local/bin/setup_env_master.sh program_name arguments
Dmitry Vasilyanov

1
Kabuk sarma çözümünün önemli bir dezavantajı var - süpervizör INT veya KILL kullanarak işlemi durdurmaya çalışacaksa, sinyal asıl sarılmış program tarafından değil, bash betiği tarafından alınacaktır. Bu (ve benim durumumda) sarkan süreçlere yol açabilir.
stoiczek

@stoiczek kolay sorunu çözmek için. Bash betiğinin sonunda exec komutunu kullanın, yalnızca komutu düzenli olarak çalıştırmayın. Yani exec server --args. Bunu başlangıç ​​işlerinde sürekli olarak görüyorsunuz.
CameronNemo

Yanıtlar:


17

Bu özellik yakın zamanda Süpervizöre eklendi

Çevre = YOL = "/ home / site / ortamlar / usta / bin:% (ENV_PATH) s"

https://github.com/Supervisor/supervisor/blob/master/supervisor/skel/sample.conf#L8

Ayrıca bkz. Https://stackoverflow.com/questions/12900402/supervisor-and-environment-variables


Ancak henüz piyasaya sürülmedi (etiketlendi): github.com/Supervisor/supervisor/issues/599
tersmitten


1

Belgeleri inceledim ve Dmitry ile aynı fikirdeyim.

Şimdiki cevap: süpervizör bu dizini yapmaz, fakat bir sarmalayıcı betiği oluşturmak yardımcı olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.