एक सेवा के लिए / etc / पर्यावरण से ऊपर का वातावरण पढ़ें


17

सबसे अच्छा तरीका वातावरण चर में परिभाषित प्रदान करने के लिए क्या है /etc/environmentएक के लिए नवोदय सेवा?

मुझे लगता है कि बस .एक स्क्रिप्ट अनुभाग में उनके साथ काम करने से काम नहीं चलता है, क्योंकि स्क्रिप्ट को निष्पादित किया जाता है shजिसके द्वारा exportहर व्यक्ति के सामने एक अतिरिक्त की आवश्यकता होगी ...

जवाबों:


16

मुझे आखिरकार #upstartआईआरसी चैनल पर जवाब मिल गया । कुछ बिंदु पर, अपस्टार्ट को उचित PAM समर्थन मिलेगा और इस प्रकार वह /etc/environmentस्वयं पढ़ेगा । तब तक, चाल को su के साथ कमांड निष्पादित करना है। suPAM का उपयोग करता है और उचित वातावरण स्थापित करेगा। उदाहरण:

script 
    exec su root -c /usr/sbin/job_needing_envs
end script

उत्तर पोस्ट करने के लिए धन्यवाद, आपने मेरी उसी समस्या में मदद की है।
मैक्सिम वीक्स्लर

त्रुटि:su: must be run from a terminal
कुफ

3

मैं उपयोग करते हैं eval $(cat /etc/environment | sed 's/^/export /')

यह प्रत्येक पंक्ति को पूर्व /etc/environmentनिर्धारित करता है export, और उसका मूल्यांकन करता है:

script
exec /bin/bash <<'EOT'
  eval $(cat /etc/environment | sed 's/^/export /')
  do_what_you_need_to
EOT
end script

आप निष्पादन का उपयोग क्यों करते हैं और न केवल निर्यात को सीधे स्क्रिप्ट ब्लॉक में डालते हैं?
Guss

1

इसे अपनी स्क्रिप्ट में जोड़ें:

. /etc/environment
export VAR1 VAR2 VAR3

जहाँ आपके लिए आवश्यक चर "VAR1" स्टाइल प्लेसहोल्डर के स्थान पर निर्दिष्ट हैं।


2
इस तरह मुझे मैन्युअल रूप से अपस्टार्ट कॉन्फ़िगरेशन और / etc / वातावरण को सिंक में रखना है, जो (मेरी राय में) चर को दो बार परिभाषित करने से बेहतर नहीं है ...
Nikratio

मैं /etc/environmentआपके सभी आवश्यक चर को परिभाषित करने के लिए उपयोग नहीं करूंगा । एक स्थिर फ़ाइल के रूप में छोड़ दें। अपने सिस्टम पर, मुझे केवल कुछ स्क्रिप्ट मिल सकती हैं जो इसे वैसे भी उपयोग करती हैं। एक फ़ाइल बनाएं जैसे कुछ कहा जाता है /etc/environment.localऔर अपने चर और निर्यात को उस फ़ाइल और स्रोत में डाल दें । तब आपको केवल उस एक फ़ाइल को बनाए रखना होगा ।
अगली सूचना तक रोक दिया गया।

/ etc / पर्यावरण pam_env.so (और किसी भी स्क्रिप्ट द्वारा नहीं) द्वारा पढ़ा जाता है, इसलिए यह किसी भी लॉगिन के लिए उपलब्ध है। केवल upstart द्वारा शुरू किए गए कार्यक्रमों में दुर्भाग्य से, उस फ़ाइल तक पहुंच नहीं है।
Nikratio
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.