पर्यावरण के चर की परिभाषा के बारे में अलग-अलग समाधान हैं जो launchdप्रक्रिया में संग्रहीत हैं , अर्थात् स्टैकऑवरफ्लो और सुपरयूज़र पर । ये समाधान अलग कैसे हैं?
पर्यावरण के चर की परिभाषा के बारे में अलग-अलग समाधान हैं जो launchdप्रक्रिया में संग्रहीत हैं , अर्थात् स्टैकऑवरफ्लो और सुपरयूज़र पर । ये समाधान अलग कैसे हैं?
जवाबों:
स्पष्टता रखने के लिए, मैं करने के लिए संदर्भित करेंगे इस समाधान के रूप में स्थिर समाधान , दूसरा समाधान के रूप में गतिशील समाधान , और अंत में यह एक के रूप में लांच एजेंट समाधान । मैं क्रमशः लॉन्च एजेंट एक के साथ स्थिर और गतिशील समाधान की तुलना करने जा रहा हूं।
स्थैतिक समाधान में संपादन शामिल है /etc/launchd.conf। लॉन्च एजेंट समाधान के साथ इसका लाभ यह है कि लॉगिन में चर सही सेट होते हैं। नुकसान ये हैं कि
/etc/launchd.confचर प्रतिस्थापन और इस तरह के सामान (कम से कम मेरा अनुमान है, शायद यह संभव है) जैसी चीजों की अनुमति नहीं देता है,/etc/launchd.confस्टैटिक सॉल्यूशन को खींचने के लिए एक्सेस की आवश्यकता होती है, दूसरे के साथ आप सभी फाइलों को सुलभ स्थानों पर रख सकते हैं, जैसे लॉन्च एजेंट में ~/Library/LaunchAgents/।डायनेमिक समाधान लॉन्च एजेंट समाधान के समान है। इसका नुकसान यह है कि लॉगिन के बाद चर उपलब्ध नहीं हैं, आपको पहले उन्हें (फिर से) परिभाषित करने की आवश्यकता है। दूसरे के साथ गतिशील समाधान को संयोजित करने के लिए, कल्पना करें कि आप चर FOOको सामग्री की सामग्री के लिए चर सेट करना चाहते थे BAR। आप एक खोल को आग लगा देंगे, बाश और प्रकार कह सकते हैं
launchctl setenv FOO "$BAR"
echo 'setenv FOO $BAR' >> ~/.conf.launchd
फिर FOOइस परिभाषा के बाद शुरू किए गए सभी अनुप्रयोगों में उपलब्ध होगा, और अगले लॉगिन के ठीक बाद परिभाषित भी किया जाएगा।