लॉन्च / लॉन्च के साथ पर्यावरण चर को परिभाषित करना


2

पर्यावरण के चर की परिभाषा के बारे में अलग-अलग समाधान हैं जो launchdप्रक्रिया में संग्रहीत हैं , अर्थात् स्टैकऑवरफ्लो और सुपरयूज़र पर । ये समाधान अलग कैसे हैं?

जवाबों:


4

स्पष्टता रखने के लिए, मैं करने के लिए संदर्भित करेंगे इस समाधान के रूप में स्थिर समाधान , दूसरा समाधान के रूप में गतिशील समाधान , और अंत में यह एक के रूप में लांच एजेंट समाधान । मैं क्रमशः लॉन्च एजेंट एक के साथ स्थिर और गतिशील समाधान की तुलना करने जा रहा हूं।

स्थैतिक समाधान में संपादन शामिल है /etc/launchd.conf। लॉन्च एजेंट समाधान के साथ इसका लाभ यह है कि लॉगिन में चर सही सेट होते हैं। नुकसान ये हैं कि

  • चर सभी उपयोगकर्ताओं के लिए परिभाषित किए गए हैं। लॉन्च एजेंट समाधान प्रत्येक उपयोगकर्ता को खुद के लिए निर्णय लेने देता है। यदि कोई लॉन्च एजेंट समाधान के साथ सभी उपयोगकर्ताओं के लिए चर को परिभाषित करना चाहता है, तो शेल स्क्रिप्ट को एक लूप (और दूसरी फ़ाइल) के साथ संशोधित किया जा सकता है,
  • चर की परिभाषा /etc/launchd.confचर प्रतिस्थापन और इस तरह के सामान (कम से कम मेरा अनुमान है, शायद यह संभव है) जैसी चीजों की अनुमति नहीं देता है,
  • जाहिर है, आपको /etc/launchd.confस्टैटिक सॉल्यूशन को खींचने के लिए एक्सेस की आवश्यकता होती है, दूसरे के साथ आप सभी फाइलों को सुलभ स्थानों पर रख सकते हैं, जैसे लॉन्च एजेंट में ~/Library/LaunchAgents/
  • लॉन्च एजेंट समाधान (लेकिन नीचे देखें) के साथ, फ़ाइल संपादित करने के तुरंत बाद चर उपलब्ध नहीं होते हैं।

डायनेमिक समाधान लॉन्च एजेंट समाधान के समान है। इसका नुकसान यह है कि लॉगिन के बाद चर उपलब्ध नहीं हैं, आपको पहले उन्हें (फिर से) परिभाषित करने की आवश्यकता है। दूसरे के साथ गतिशील समाधान को संयोजित करने के लिए, कल्पना करें कि आप चर FOOको सामग्री की सामग्री के लिए चर सेट करना चाहते थे BAR। आप एक खोल को आग लगा देंगे, बाश और प्रकार कह सकते हैं

launchctl setenv FOO "$BAR"
echo 'setenv FOO $BAR' >> ~/.conf.launchd

फिर FOOइस परिभाषा के बाद शुरू किए गए सभी अनुप्रयोगों में उपलब्ध होगा, और अगले लॉगिन के ठीक बाद परिभाषित भी किया जाएगा।

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