मैकोज़ में शेड्यूल पर लिपियों को चलाने के लिए लॉन्चड का उपयोग कैसे करें
लॉन्च एक स्क्रिप्ट और प्रक्रियाओं को शुरू करने, रोकने और प्रबंधित करने के लिए एक उपकरण है। यदि आपने लिनक्स के किसी भी संस्करण के साथ काम किया है, तो आप क्रॉन से परिचित हो सकते हैं। लॉन्चड मूल रूप से मैकोज़ में क्रॉन है।
डेमन्स क्या हैं?
डेमन्स (उच्चारण "राक्षस") स्क्रिप्ट हैं जो पृष्ठभूमि में चलती हैं। अनुप्रयोगों के विपरीत, डिमन्स प्रक्रियाओं के रूप में चलते हैं और उपयोगकर्ता या किसी अन्य एप्लिकेशन के प्रत्यक्ष नियंत्रण में नहीं हैं। मैकोज़ पर वे लॉन्च फ्रेमवर्क के कमांड के अधीन हैं जो निर्णय लेता है कि वे कब शुरू करते हैं और रोकते हैं।
असामान्य नाम मैक्सवेल के दानव से आता है, एक काल्पनिक एजेंट जो थर्मोडायनामिक्स में अणुओं का प्रयोग करता है।
लेखन स्क्रिप्ट्स
लॉन्च के माध्यम से डिमन्स चलाने के लिए, आपको कुछ स्क्रिप्ट लिखनी होगी। सबसे आम पटकथा भाषा बाश है। यदि आप बैश स्क्रिप्टिंग के बारे में अधिक जानना चाहते हैं, तो आप ब्रश स्क्रिप्टिंग के लिए हमारे शुरुआती मार्गदर्शिका को देख सकते हैं।
लॉन्च का उपयोग करना
लॉन्च में लिपियों को नौकरी परिभाषाओं द्वारा ट्रिगर किया जाता है जो विशिष्ट निर्देशिकाओं में संग्रहीत .plist फ़ाइलें हैं। ये एक्सएमएल फाइलें नौकरी का नाम देती हैं, लिपि को लॉन्च किया जाना चाहिए, और इंगित करें कि स्क्रिप्ट कब चलनी चाहिए। एक बार जब आप अपनी स्क्रिप्ट लिखेंगे, तो आप एक नौकरी परिभाषा लिखेंगे और लोड करेंगे जो उचित समय पर स्क्रिप्ट लॉन्च करेगी।
नौकरी की परिभाषा कुछ नीचे दिखती है:
लेबल local.restart कार्यक्रम /Users/user/Scripts/restart.sh RunAtLoad
आवश्यकतानुसार संशोधित करें, फिर इसे सही निर्देशिका में छोड़ने से पहले .plist एक्सटेंशन के साथ टेक्स्ट फ़ाइल में रखें (नीचे देखें)।
नौकरी के विवरण में कुछ महत्वपूर्ण भाग हैं:
- लेबल: लॉन्च के भीतर नौकरी का नाम। प्रत्येक नौकरी के लिए अद्वितीय होना चाहिए। ये रिवर्स डोमेन नोटेशन में लिखे गए हैं, और "स्थानीय" निजी एजेंटों के लिए एक महान डोमेन है।
- कार्यक्रम: स्क्रिप्ट का पूरा पथ इस नौकरी का विवरण लॉन्च करता है।
- RunAtLoad: स्क्रिप्ट को चलाने के दौरान वर्णन करता है। यहां कुछ अलग-अलग विकल्प हैं:
- RunAtLoad : जैसे ही नौकरी परिभाषा लोड हो जाती है। प्रति लोड केवल एक बार चलाता है।
- StartInterval : हर एन सेकंड में नौकरी शुरू करें। यह उदाहरण प्रत्येक 7200 सेकंड या हर 2 घंटे नौकरी चलाएगा।
StartInterval 7200 - StartCalendarInterval : नौकरी को एक विशिष्ट समय और तारीख पर चलाएं। नीचे दिया गया कोड नौ दिन 9 बजे नौकरी चलाएगा।
StartCalendarInterval घंटा 9 मिनट 0
एजेंट बनाम डेमन्स
एक बार जब आप अपना नौकरी विवरण लिख लेते हैं, तो आपको इसे उचित निर्देशिका में सहेजने की आवश्यकता होगी।
एजेंटों और डेमन्स के बीच आगे बढ़ता है। एक एजेंट लॉग-इन उपयोगकर्ता की ओर से चलता है, जबकि एक डिमन रूट उपयोगकर्ता के नीचे चलता है। इसका अर्थ यह है कि यदि आप एक विशिष्ट उपयोगकर्ता खाते में एक स्क्रिप्ट को प्रतिबंधित करना चाहते हैं, तो आप एक एजेंट का उपयोग कर सकते हैं। यदि आप कुछ चलाने के लिए चाहते हैं चाहे कोई भी लॉग इन हो, तो आप एक डिमन का उपयोग करेंगे।
एजेंटों और डिमॉन्स के बीच का अंतर कंप्यूटर से सहेजे गए स्थान से खींचा जाता है:
- "~ / लाइब्रेरी / लॉन्चएजेंट्स" लॉग-इन उपयोगकर्ता की तरफ से चलता है
- "/ लाइब्रेरी / लॉन्च डेमन्स" रूट उपयोगकर्ताओं की तरफ से चलता है
आपको अपनी जगह को सही स्थान पर सहेजने की आवश्यकता होगी।
लॉन्चक्टल में नौकरियां लोड हो रही हैं
एक बार जब आप अपनी स्क्रिप्ट बनाते हैं और अपने एजेंट को सही जगह पर सहेज लेते हैं, तो आपको इसे launchctl
में लोड करना होगा। यह भविष्य में लॉग इन पर स्वचालित रूप से होगा।
यह देखने के लिए कि वर्तमान में laucnhctl में क्या चल रहा है, आप टर्मिनल में लॉन्चक्टल launchctl list
उपयोग कर सकते हैं। इस विशाल सूची को आपकी स्क्रिप्ट के लिए निम्नलिखित की तरह लेबल करके इसे दबाया जा सकता है:
लॉन्चक्टल सूची | grep local.restart
एक स्क्रिप्ट लोड करने के लिए, टर्मिनल खोलें और निम्न आदेश का उपयोग करें:
लॉन्चक्टल लोड ~ / लाइब्रेरी / लॉन्चएजेंट्स / local.restart.plist
लॉन्चक्टल कतार से स्क्रिप्ट को हटाने के लिए, unload
कमांड का उपयोग करें:
लॉन्चक्टल अनलोड ~ / लाइब्रेरी / लॉन्चएजेंट्स / local.restart.plist
नौकरी लोड करना इसे लॉन्च कतार में रखता है, और नौकरी लॉन्च की स्थिति में निर्दिष्ट समय पर चलती है। यदि आप तुरंत एक स्क्रिप्ट चलाने के लिए चाहते हैं, तो कोई फर्क नहीं पड़ता कि आपको "स्टार्ट" कमांड का उपयोग करना चाहिए:
launchctl स्थानीय शुरू करें
यह आदेश नौकरी का लेबल लेता है और केवल तभी काम करेगा यदि नौकरी पहले से ही launchctl
में लोड हो चुकी है।
निष्कर्ष
आप स्क्रिप्ट बनाने के लिए लॉन्च का उपयोग कर सकते हैं जो फ़ाइलों को साफ करने जैसी चीजें करते हैं, शेड्यूल पर अपने सर्वर को पुनरारंभ करें या एक निश्चित फ़ाइल प्रकट होने पर एप्लिकेशन चलाएं। लॉन्च के बारे में बहुत कुछ सीखने के लिए, आप laucnhd ट्यूटोरियल देख सकते हैं।
छवि क्रेडिट: मैक्सवेल_डोमन