लॉन्चड स्क्रिप्ट और प्रक्रियाओं को शुरू करने, रोकने और प्रबंधित करने का एक उपकरण है। यदि आपने लिनक्स के किसी भी संस्करण के साथ काम किया है, तो आप क्रॉन से परिचित हो सकते हैं। लॉन्चड मूल रूप से macOS में क्रोन है।
डेमॉन क्या हैं?
डेमन्स (उच्चारण "राक्षस") स्क्रिप्ट हैं जो पृष्ठभूमि में चलती हैं। अनुप्रयोगों के विपरीत, डेमॉन प्रक्रियाओं के रूप में चलते हैं और उपयोगकर्ता या किसी अन्य एप्लिकेशन के सीधे नियंत्रण में नहीं होते हैं। macOS पर वे लॉन्चड फ्रेमवर्क की कमान में होते हैं जो तय करता है कि वे कब शुरू और बंद होंगे।
असामान्य नाम मैक्सवेल के दानव से आया है, एक काल्पनिक एजेंट जो थर्मोडायनामिक्स विचार प्रयोग में अणुओं को सॉर्ट करता है।
स्क्रिप्ट लिखना
लॉन्च के माध्यम से डेमॉन चलाने के लिए, आपको कुछ स्क्रिप्ट लिखनी होंगी। सबसे आम स्क्रिप्टिंग भाषा बैश है। यदि आप बैश स्क्रिप्टिंग के बारे में अधिक जानना चाहते हैं, तो आप बैश स्क्रिप्टिंग के लिए हमारे शुरुआती गाइड को देख सकते हैं।
लॉन्च का उपयोग करना
लॉन्चड में लिपियों को नौकरी की परिभाषाओं द्वारा ट्रिगर किया जाता है जो विशिष्ट निर्देशिकाओं में संग्रहीत .plist फाइलें होती हैं। ये XML फ़ाइलें कार्य को एक नाम देती हैं, उस स्क्रिप्ट को निर्दिष्ट करती हैं जिसे लॉन्च किया जाना चाहिए, और यह इंगित करें कि स्क्रिप्ट को कब चलाया जाना चाहिए। एक बार जब आप अपनी स्क्रिप्ट लिख लेते हैं, तो आप एक नौकरी की परिभाषा लिखेंगे और लोड करेंगे जो स्क्रिप्ट को उचित समय पर लॉन्च करेगी।
नौकरी की परिभाषा कुछ इस तरह दिखती है:
Label local.restart Program / User/user/Scripts/restart.sh RunAtLoad
आवश्यकतानुसार संशोधित करें, फिर इसे सही निर्देशिका में छोड़ने से पहले .plist एक्सटेंशन वाली टेक्स्ट फ़ाइल में डालें (नीचे देखें)।
नौकरी विवरण के कुछ प्रमुख भाग हैं:
- लेबल: लॉन्च के भीतर नौकरी का नाम। प्रत्येक कार्य के लिए अद्वितीय होना चाहिए। ये रिवर्स डोमेन नोटेशन में लिखे गए हैं, और "लोकल" निजी एजेंटों के लिए एक बेहतरीन डोमेन है।
- कार्यक्रम: स्क्रिप्ट का पूरा पथ यह नौकरी विवरण लॉन्च करता है।
- रनएटलोड: वर्णन करता है कि स्क्रिप्ट कब चलाई जानी चाहिए। यहां कुछ अलग विकल्प हैं:
- RunAtLoad :कार्य परिभाषा लोड होते ही चलाएँ। प्रति लोड केवल एक बार चलता है।
- प्रारंभ अंतराल :प्रत्येक n . पर कार्य प्रारंभ करें सेकंड। यह उदाहरण हर 7200 सेकंड या हर 2 घंटे में काम चलाएगा।
StartInterval 7200 - कैलेंडर अंतराल प्रारंभ करें :कार्य को एक विशिष्ट समय और तिथि पर चलाएँ। नीचे दिया गया कोड हर दिन सुबह 9 बजे काम चलाएगा।> <पूर्णांक>0पूर्णांक>
एजेंट बनाम डेमॉन
एक बार जब आप अपना कार्य विवरण लिख लेते हैं, तो आपको उसे उपयुक्त निर्देशिका में सहेजना होगा।
launchd आगे एजेंटों और डेमॉन के बीच अंतर करता है। एक एजेंट लॉग-इन उपयोगकर्ता की ओर से चलता है, जबकि एक डेमॉन रूट उपयोगकर्ता के अंतर्गत चलता है। इसका अर्थ यह है कि यदि आप किसी विशिष्ट उपयोगकर्ता खाते के लिए किसी स्क्रिप्ट को प्रतिबंधित करना चाहते हैं, तो आप एक एजेंट का उपयोग कर सकते हैं। अगर आप चाहते हैं कि कुछ भी चले, चाहे कोई भी लॉग इन हो, तो आप एक डेमॉन का उपयोग करेंगे।
एजेंट और डेमॉन के बीच का अंतर वहीं से निकाला जाता है जहां से वे कंप्यूटर पर सहेजे जाते हैं:
- “~/लाइब्रेरी/लॉन्चएजेंट” लॉग-इन किए गए उपयोगकर्ता की ओर से चलता है
- “/Library/LaunchDaemons” रूट उपयोगकर्ताओं की ओर से चलता है
आपको अपनी प्लिस्ट को सही स्थान पर सहेजना होगा।
नौकरियों को launchctl में लोड किया जा रहा है
एक बार जब आप अपनी स्क्रिप्ट बना लेते हैं और अपने एजेंट को सही जगह पर सहेज लेते हैं, तो आपको उसे launchctl
में लोड करना होगा। . यह भविष्य में लॉगिन करने पर अपने आप हो जाएगा।
यह देखने के लिए कि वर्तमान में laucnhctl में क्या चल रहा है, आप launchctl list
का उपयोग कर सकते हैं टर्मिनल में। इस विशाल सूची को आपकी स्क्रिप्ट के लिए कुछ इस तरह से लेबल करके तैयार किया जा सकता है:
लॉन्चक्टल सूची | grep local.restart
स्क्रिप्ट लोड करने के लिए, टर्मिनल खोलें और निम्न कमांड का उपयोग करें:
launchctl load ~/Library/LaunchAgents/local.restart.plist
लॉन्चक्टल कतार से स्क्रिप्ट को हटाने के लिए, unload
. का उपयोग करें आदेश:
launchctl अनलोड ~/Library/LaunchAgents/local.restart.plist
किसी कार्य को लोड करने से वह लॉन्च कतार में आ जाता है, और कार्य उसकी लॉन्च स्थितियों में निर्दिष्ट समय पर चलेगा। यदि आप किसी स्क्रिप्ट को तुरंत चलाना चाहते हैं, चाहे कुछ भी हो, आपको "स्टार्ट" कमांड का उपयोग करना चाहिए:
launchctl start local.restart
यह आदेश कार्य का लेबल लेता है और केवल तभी कार्य करेगा जब कार्य पहले ही launchctl
में लोड हो चुका हो ।
निष्कर्ष
आप स्क्रिप्ट बनाने के लिए लॉन्चड का उपयोग कर सकते हैं जो फाइलों को साफ करने, शेड्यूल पर अपने सर्वर को पुनरारंभ करने या एक निश्चित फ़ाइल दिखाई देने पर एप्लिकेशन चलाने जैसे काम करता है। लॉन्चड के बारे में और भी बहुत कुछ जानने के लिए, आप लॉकनएचडी ट्यूटोरियल देख सकते हैं।