पर्यवेक्षक: $ PATH को कैसे जोड़ा जाए


23

मैं यह पता नहीं लगा सकता कि पर्यवेक्षक कार्यक्रम के विन्यास में डिफ़ॉल्ट पथ पर कैसे जोड़ा जाए।

मैं पथ को रीसेट कर सकता हूं:

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

लेकिन जब मैं कोशिश करता हूं:

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

मैं देख रहा हूं कि पर्यवेक्षक मूल्यांकन नहीं करता है $PATH

Google किसी कारण से इस पर बड़ी मदद नहीं कर रहा था, मुझे विश्वास नहीं हो रहा है कि मैं ऐसा करने वाला पहला व्यक्ति हूँ।

सुपरवाइजर के पास इसके लिए समर्थन होना चाहिए, किसी भी विचार यह क्या है?


1
@ascobol nope, मैंने उस पथ को हार्डकोड किया है जिसकी मुझे आवश्यकता है, अब
Prody

2
supervisordकॉन्फ़िगरेशन फ़ाइल में पूर्वप्रकरण चर के लिए शेल न चलाएं, इसलिए आप चर का विस्तार करने के लिए शैल अभिव्यक्ति का उपयोग नहीं कर सकते। हालांकि एक पैच है जो करने की अनुमति देता है %($PATH)और इसे 2011 में वापस मेलिंग सूचियों में चर्चा की गई थी, लेकिन AFAIK अभी भी मेनलाइन स्रोत पेड़ में शामिल नहीं है। वर्कअराउंड के रूप में आप एक स्क्रिप्ट बना सकते हैं जो पर्यावरण को सेटअप करेगी और तर्कों में दी गई कमांड को निष्पादित करेगी। फिर आप बस स्क्रिप्ट को इस supervisordतरह से चलाते हैंcommand /usr/local/bin/setup_env_master.sh program_name arguments
दिमित्री वासिलीनोव

1
शेल रैपर समाधान के लिए एक महत्वपूर्ण खामी है - जब पर्यवेक्षक INT या KILL का उपयोग करके प्रक्रिया को रोकने की कोशिश करेगा, तो संकेत bash स्क्रिप्ट द्वारा प्राप्त किया जाएगा और वास्तविक लिपटे प्रोग्राम नहीं। यह प्रक्रियाओं को लटकाने के लिए (और मेरे मामले में आगे बढ़ता है) हो सकता है।
stoiczek

@stoiczek आसान समस्या हल करने के लिए। बैश स्क्रिप्ट के अंत में निष्पादन का उपयोग करें, केवल नियमित रूप से कमांड न चलाएं। तो exec server --args। आप इसे ऊपर की नौकरियों में हमेशा देखते हैं।
कैमरूननेमो

जवाबों:


17

यह सुविधा हाल ही में पर्यवेक्षक में जोड़ी गई है

पर्यावरण = पथ = "/ घर / साइट / वातावरण / मास्टर / बिन:% (ENV_PATH) s"

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

Https://stackoverflow.com/questions/12900402/supervisor-and-environment-variables भी देखें


लेकिन यह अभी तक जारी नहीं किया गया है (टैग किया गया है): github.com/Supervisor/supervisor/issues/599
tersmitten

इसे कल टैग किया गया है: pypi.python.org/pypi/supervisor
tersmitten

1

मैंने प्रलेखन की समीक्षा की और दिमित्री के साथ सहमति व्यक्त की।

वर्तमान उत्तर है: पर्यवेक्षक इस निर्देशिका को नहीं करता है, लेकिन एक आवरण स्क्रिप्ट बनाने से मदद मिलेगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.