रास्पबेरी पाई एक शक्तिशाली एसबीसी (सिंगल बोर्ड कंप्यूटर) है जिसका उपयोग आप विभिन्न अनुप्रयोगों और परियोजनाओं के लिए कर सकते हैं। इसकी बहुमुखी प्रतिभा कस्टम स्क्रिप्ट सहित सभी प्रकार के कार्यक्रमों को चलाने की क्षमता में निहित है, रास्पबेरी पाई ओएस और अन्य लिनक्स-आधारित ऑपरेटिंग सिस्टम के लिए धन्यवाद जो इसे चलाता है।
रास्पबेरी पाई पर एक स्क्रिप्ट या प्रोग्राम चलाना उतना ही सरल है जितना कि इसे सिस्टम पर ढूंढना और इसे निष्पादित करना। लेकिन क्या होगा यदि आप इस प्रक्रिया को स्वचालित करना चाहते हैं, शायद इसलिए कि आपके प्रोजेक्ट को इसकी आवश्यकता है या क्योंकि आप अपने वर्कफ़्लो को सुव्यवस्थित करना चाहते हैं?
इसका एक उत्तर सिस्टमड का उपयोग करना सीख रहा है।
सिस्टमड क्या है?
systemd आधुनिक Linux सिस्टम पर सेवा विन्यास और व्यवहार के लिए सिस्टम घटकों का एक सूट है। इसकी पहचान a. से की जाती है पीआईडी (प्रक्रिया पहचानकर्ता) 1 का क्योंकि यह सिस्टम स्टार्टअप पर बूट करने की पहली प्रक्रिया है। बड़े पैमाने पर, सिस्टमड का उद्देश्य सिस्टम स्टार्टअप पर कार्यक्रमों के प्रबंधन और निष्पादन में आपकी सहायता करना है। और यही आप पीआई पर स्टार्टअप पर अपना प्रोग्राम लॉन्च करने के लिए लाभ उठाएंगे।
जैसा कि शुरू में उल्लेख किया गया है, लिनक्स सिस्टम पर स्टार्टअप पर प्रोग्राम चलाने के लिए कई तरीके हैं, जैसे कि rc.local, cron और autostart। हालाँकि, यदि आप GUI (ग्राफिकल यूजर इंटरफेस) प्रोग्राम लॉन्च करना चाहते हैं, तो सिस्टमड लॉट के बेहतर समाधान के लिए होता है, कुछ सिस्टम प्रक्रियाओं के शुरू होने के बाद चलने के लिए अनुप्रयोगों को स्वचालित करें, या आपके शेड्यूलिंग तक प्रोग्राम को बार-बार चलाएं काम करता है।
सम्बंधित: क्रोन और क्रोंटैब के साथ लिनक्स में कार्य कैसे शेड्यूल करें?
स्टार्टअप पर प्रोग्राम लॉन्च करने के लिए सिस्टमड का उपयोग कैसे करें
सिस्टमड लिनक्स सिस्टम पर स्टार्टअप पर प्रोग्राम लॉन्च करने का थोड़ा अधिक जटिल तरीका है। हालाँकि, शेड्यूलिंग लचीलापन यह अन्य तरीकों से प्रदान करता है - जिनका हमने ऊपर उल्लेख किया है - हर पहलू में इसकी जटिलता से पूरी तरह से अधिक है।
सिस्टमड विधि यूनिट फाइलों का उपयोग करती है, जो कि .ini फाइलों की तरह होती हैं जो डिवाइस, सेवाओं, सॉकेट, स्टार्ट-अप लक्ष्य और अन्य आवश्यक सिस्टम घटकों के बारे में एन्कोडिंग जानकारी रखती हैं।
यूनिट फाइलें विभिन्न प्रकार की होती हैं। इसलिए, आप किस प्रकार के संसाधन घोषित करना चाहते हैं, इसके आधार पर, आपको तदनुसार एक इकाई फ़ाइल प्रकार चुनने की आवश्यकता है। हालांकि, इस गाइड के उद्देश्य के लिए, हम .service यूनिट फाइलों से चिपके रहेंगे, जो आपको सिस्टम पर प्रोग्राम और स्क्रिप्ट के स्टार्टअप व्यवहार को प्रबंधित करने की अनुमति देती हैं।
नीचे सिस्टमड का उपयोग करके स्टार्टअप पर एक स्क्रिप्ट/प्रोग्राम लॉन्च करने में शामिल चरणों का टूटना है।
एक सेवा बनाना
स्टार्टअप पर चलाने के लिए अपना प्रोग्राम सेट करने के लिए, एक सर्विस यूनिट फ़ाइल बनाएं जो सिस्टमड को बताएगी कि कौन सा प्रोग्राम चलाना है और कब। यहाँ यह कैसे करना है।
- सीएलआई विंडो में, टाइप करें सुडो नैनो /lib/systemd/system/display.service. आप अपनी सेवा के लिए किसी भी नाम का उपयोग तब तक कर सकते हैं जब तक वह .service एक्सटेंशन के साथ समाप्त हो जाता है।
- सेवा फ़ाइल में, कोड की निम्न पंक्तियाँ चिपकाएँ:
[इकाई]
विवरण = पीआई काउंटर
बाद=नेटवर्क.लक्ष्य
[सेवा]
ExecStart=/usr/bin/python3 /home/pi/PiCounter/display.py
पुनः प्रारंभ = हमेशा
उपयोगकर्ता = पीआई
[इंस्टॉल]
वांटेडबाय=मल्टी-यूजर.टारगेट
आपके सभी सामान्य कॉन्फ़िगरेशन विकल्प इसके अंतर्गत आते हैं इकाई तथा इंस्टॉल अनुभाग, जबकि सेवा-विशिष्ट कॉन्फ़िगरेशन विकल्प सेवा अनुभाग के अंतर्गत आते हैं।
उपरोक्त कुछ निर्देश-मूल्य जोड़े जिन्हें आपको संशोधित करने की आवश्यकता हो सकती है उनमें शामिल हैं:
मैं। उपरांत: यह निर्धारित करता है कि सेवा कब शुरू करनी है। इसे सेट करना नेटवर्क लक्ष्य यह सुनिश्चित करता है कि सूचीबद्ध मान - इस मामले में network.target - वर्तमान इकाई को शुरू करने से पहले शुरू होता है। हालांकि, यह सेवा को ट्रिगर करने के लिए निर्भरता संबंध को निर्देशित नहीं करता है; यह अन्य निर्देशों जैसे कि वॉन्ट्स, रिक्वायरमेंट्स और वांटेडबी के माध्यम से किया जाता है।
बेशक, आप अपनी परियोजना आवश्यकताओं के अनुरूप इस मान को बदल सकते हैं। उदाहरण के लिए, यदि आप चाहते हैं कि आपका रास्पबेरी पाई नेटवर्क से कनेक्ट होने के बाद आपका प्रोग्राम निष्पादित हो, तो आप इसका उपयोग कर सकते हैं नेटवर्क-ऑनलाइन.लक्ष्य मूल्य। आप इसका उल्लेख कर सकते हैं systemd पर फेडोरा का दस्तावेज़ीकरण इन मूल्यों के बारे में अधिक जानने के लिए।
द्वितीय निष्पादन प्रारंभ करें: यह पूर्ण पथ और प्रोग्राम/स्क्रिप्ट नाम रखता है जिसे आप स्टार्टअप पर निष्पादित करना चाहते हैं। तो आप जो निष्पादित करना चाहते हैं उसके आधार पर, आपको इन दोनों निर्देशों के लिए मान जोड़ने की आवश्यकता है।
iii. उपयोगकर्ता: यह आपके रास्पबेरी पाई के नाम की पहचान करता है। यदि आपने अपना पाई का नाम बदल दिया है, तो आपको उस मान को उपयोगकर्ता के लिए रखना होगा।
iv. द्वारा चाहा गया: यह किसी इकाई के लिए ट्रिगर निर्दिष्ट करने का सबसे सामान्य तरीका है। इसे पर सेट करके बहु-उपयोगकर्ता लक्ष्यtar, आप एक निर्भरता संबंध स्थापित कर सकते हैं जो प्रोग्राम को तब चलाएगा जब सिस्टम नियंत्रण बहु-उपयोगकर्ता शेल को सौंप दिया जाएगा।
इसके अलावा, यह आपके प्रोग्राम को पीआई के एक्स-विंडोज सिस्टम के शुरू होने से पहले भी चलाता है, जिसका अर्थ है कि आपका प्रोग्राम सिस्टम में लॉग इन करने से पहले ही चलता है। यदि आप अपने रास्पबेरी पाई में लॉग इन करने से पहले एक स्क्रिप्ट चलाना चाहते हैं, तो यह आपको ऐसा करने में सक्षम बनाता है।
कोड की उपरोक्त पंक्तियाँ गैर-जीयूआई कार्यक्रमों के लिए काम करती हैं। हालाँकि, यदि आप सिस्टमड का उपयोग करके GUI प्रोग्राम चलाना चाहते हैं, तो आपको अपनी सेवा फ़ाइल में निम्न कोड जोड़ना चाहिए:
[इकाई]
विवरण = पीआई काउंटर
बाद=नेटवर्क.लक्ष्य
[सेवा]
पर्यावरण = प्रदर्शन =: 0
पर्यावरण = XAUTHORITY/घर/pi/.Xauthority
ExecStart=/usr/bin/python3 /home/pi/PiCounter/display.py
पुनः प्रारंभ = हमेशा
[इंस्टॉल]
वांटेडबाय=मल्टी-यूजर.टारगेट
उपरोक्त डायरेक्टिव-वैल्यू पेयर में, आपको केवल the के लिए वैल्यू बदलने की जरूरत है निष्पादन प्रारंभ निर्देश। कोडब्लॉक में से एक को उस प्रोग्राम से बदलें जिसे आप स्टार्टअप पर चलाना चाहते हैं। सेवा फ़ाइल भरने के बाद, हिट करें सीटीआरएल + ओ इसे बचाने के लिए।
सेवा का परीक्षण करें
सेवा तैयार होने के साथ, मैन्युअल रूप से सत्यापित करें कि क्या यह काम करती है। इसके लिए टर्मिनल में निम्न कमांड टाइप करें: sudo systemctl start display.service. सेवा को आपके निर्देशों को सफलतापूर्वक निष्पादित करना चाहिए।
एक बार ऐसा करने के बाद, इसे समाप्त करें sudo systemctl स्टॉप डिस्प्ले.सर्विस.
सेवा सक्षम करें
यदि आप सेवा का उपयोग करके अपने प्रोग्राम को सफलतापूर्वक चलाने में कामयाब रहे हैं, तो इसे सक्षम करने का समय आ गया है ताकि हर बार जब आप अपना रास्पबेरी पाई बूट करते हैं तो यह आपके प्रोग्राम को स्वचालित रूप से निष्पादित करता है।
ऐसा करने के लिए, टाइप करें sudo systemctl display.service सक्षम करें टर्मिनल विंडो में। और एक बार यह हो जाने के बाद, दर्ज करें सुडो रिबूट अपने पीआई को पुनरारंभ करने के लिए।
एक बार जब आपका रास्पबेरी पाई बूट हो जाता है, तो सिस्टमड को आपके द्वारा दिए गए निर्देशों के अनुसार आपका प्रोग्राम चलाना चाहिए।
रास्पबेरी पाई पर स्टार्टअप पर स्वचालित कार्यक्रम लॉन्च
अधिकांश लिनक्स सिस्टमों की तरह, रास्पबेरी पाई ओएस भी आपको कई तरीकों से संचालन पूरा करने देता है, और यह शेड्यूलिंग प्रोग्राम लॉन्च के लिए भी सही रहता है। इसलिए, यदि आप स्टार्टअप पर GUI प्रोग्राम/स्क्रिप्ट लॉन्च करना चाहते हैं और अपने शेड्यूलिंग पर बेहतर नियंत्रण चाहते हैं, तो सिस्टमड स्पष्ट रूप से एक बेहतर तरीका है।
उस ने कहा, हालांकि, यदि आप एक सरल समाधान चाहते हैं या आपकी परियोजना आवश्यकताओं के लिए विशिष्ट समय-निर्धारण की आवश्यकता है, तो आप हमारे गाइड की जांच कर सकते हैं स्टार्टअप पर रास्पबेरी पाई प्रोग्राम या स्क्रिप्ट चलाना अधिक जानने के लिए।
अपने रास्पबेरी पाई से अधिक प्राप्त करना चाहते हैं? यहां पाई के टर्मिनल को नेविगेट करने और इसके GPIO पिन को प्रोग्राम करने के लिए सहायक कमांड का भार है।
आगे पढ़िए
- DIY
- रास्पबेरी पाई
यश DIY, Linux, प्रोग्रामिंग और सुरक्षा के लिए MUO में स्टाफ राइटर हैं। लेखन में अपने जुनून को खोजने से पहले, वह वेब और आईओएस के लिए विकसित हुआ करते थे। आप टेकपीपी पर उनका लेखन भी देख सकते हैं, जहां वे अन्य कार्यक्षेत्रों को कवर करते हैं। तकनीक के अलावा, उन्हें खगोल विज्ञान, फॉर्मूला 1 और घड़ियों के बारे में बात करने में मज़ा आता है।
हमारे न्यूज़लेटर की सदस्यता
तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!
एक और क़दम…!
कृपया अपने ईमेल पते की पुष्टि उस ईमेल में करें जो हमने अभी आपको भेजी है।