सिस्टम रीबूट पर स्वचालित रूप से लिनक्स कमांड और स्क्रिप्ट कैसे चलाएं

How Run Linux Commands



स्टार्टअप पर स्वचालित रूप से ऐप्स और स्क्रिप्ट चलाना सामान्य बूट कार्यों और घटनाओं को स्वचालित करने के लिए उपयोगी हो सकता है। यह लेख कुछ विधियों की व्याख्या करेगा जिनका उपयोग नए रीबूट या नए लॉगिन पर ऐप्स और स्क्रिप्ट लॉन्च करने के लिए किया जा सकता है।

स्टार्टअप अनुप्रयोग

उबंटू और अन्य गनोम आधारित वितरण एक एप्लिकेशन के साथ आते हैं जिसे केवल स्टार्टअप एप्लिकेशन कहा जाता है। इसका उपयोग उन ऐप्स और स्क्रिप्ट को प्रबंधित करने के लिए किया जा सकता है जो एक नए सिस्टम रिबूट या लॉगिन पर चलते हैं।







एप्लिकेशन लॉन्चर से स्टार्टअप एप्लिकेशन ऐप लॉन्च करें और नई प्रविष्टि जोड़ने के लिए Add बटन पर क्लिक करें।





अपनी आवश्यकताओं के अनुसार नाम और कमांड फ़ील्ड भरें और फिर एक नई प्रविष्टि बनाने के लिए जोड़ें बटन पर क्लिक करें। नीचे दिए गए स्क्रीनशॉट में बनाई गई प्रविष्टि प्रत्येक रीबूट/लॉगिन पर एक सिस्टम अधिसूचना के रूप में एक बैकअप बनाएं रिमाइंडर भेजेगी। आप इसे अपने स्वयं के आदेश से या अपनी बैश स्क्रिप्ट के पूर्ण पथ से बदल सकते हैं। आप किसी भी मौजूदा सिस्टम कमांड या एक्जिक्यूटिव का भी उपयोग कर सकते हैं जो आमतौर पर फाइल सिस्टम में विभिन्न बिन फ़ोल्डरों में स्थित होते हैं।





जैसा कि ऊपर कहा गया है, हर रिबूट पर एक बैकअप रिमाइंडर दिखाया जाता है।



सिस्टमडी

सिस्टमड एक डेमॉन और सेवा प्रबंधक है जिसमें सिस्टम प्रक्रियाओं और ओएस घटकों को प्रबंधित करने के लिए विभिन्न उपयोगिताओं शामिल हैं। अपने सरलीकृत रूप में, यह आमतौर पर एक नए बूट चक्र में सेवाओं को शुरू करने और समाप्त करने के लिए उपयोग किया जाता है।

सिस्टमड का उपयोग किसी ऐप को स्वचालित रूप से लॉन्च करने या नए बूट पर स्क्रिप्ट चलाने के लिए किया जा सकता है। ऊपर बताए गए समान बैकअप रिमाइंडर अधिसूचना बनाने के लिए, सबसे पहले आपको नीचे दिए गए आदेशों को चलाकर आवश्यक फ़ोल्डर और फ़ाइल बनाना होगा:

$एमकेडीआईआर -पी~/.config/प्रणाली/उपयोगकर्ता
$नैनो~/.config/प्रणाली/उपयोगकर्ता/बैकअप_रिमाइंडर.सेवा

नैनो को अपने पसंदीदा टेक्स्ट एडिटर के कमांड से बदलें। बैकअप_रिमाइंडर को किसी अन्य नाम से बदलें जिसे आप पसंद करते हैं।

नीचे दिए गए कोड को ऊपर दिए गए कमांड का उपयोग करके बनाई गई backup_reminder.service फ़ाइल में पेस्ट करें।

[इकाई]
विवरण=हर रिबूट पर एक बैकअप रिमाइंडर भेजता है
पार्टऑफ = ग्राफिकल-सत्र। लक्ष्य

[सेवा]
ExecStart=bash -c 'स्लीप १०; सूचना भेजें 'बैकअप बनाएं''
टाइप = वनशॉट

[इंस्टॉल]
वांटेडबाय=ग्राफिकल-सेशन.टारगेट

उपरोक्त कोड बहुत सीधा है। ग्राफिकल सत्र लोड होने के 10 सेकंड बाद यह एक बैकअप अधिसूचना भेजता है (प्रत्येक रीबूट या लॉगिन के बाद)।

सेवा को सक्षम करने के लिए नीचे दिए गए आदेश चलाएं ताकि यह स्वचालित रूप से प्रत्येक रीबूट पर चल सके।

$चामोद ६४४~/.config/प्रणाली/उपयोगकर्ता/बैकअप_रिमाइंडर.सेवा
$ systemctl--उपयोगकर्ता सक्षमबैकअप_रिमाइंडर.सेवा
$ systemctl--उपयोगकर्ताडेमॉन-रीलोड
$ रिबूट

यह सिस्टमड का उपयोग करते हुए बूट पर एक मूल कमांड चलाने का एक सरल उदाहरण है। आप कई शर्तों और कई आदेशों के साथ उन्नत सेवाएं भी बना सकते हैं। अधिक जानकारी के लिए, नीचे दिए गए कमांड को चलाकर सिस्टमड मैन पेज देखें:

$पुरुषप्रणाली

ध्यान दें कि यह उदाहरण एक नई सेवा बनाने की व्याख्या करता है जिसके लिए रूट एक्सेस की आवश्यकता नहीं होती है और यह ऑटो-स्टार्टिंग ऐप्स के लिए उपयुक्त है जिन्हें रूट अनुमतियों की आवश्यकता नहीं होती है। यदि आप रूट एक्सेस की आवश्यकता वाली स्क्रिप्ट को ऑटो-स्टार्ट करना चाहते हैं, तो आपको ~/.config/systemd/user फ़ोल्डर के बजाय /etc/systemd/system निर्देशिका में एक नई systemd सेवा बनानी होगी और ऊपर बताए गए कमांड में -user स्विच को छोड़ देना होगा।

क्रॉन नौकरी

क्रोन एक ऐसा उपकरण है जो उपयोगकर्ता द्वारा निर्दिष्ट शर्तों के अनुसार समय-समय पर निर्धारित कार्यों को चला सकता है। ये शेड्यूल्ड जॉब क्रॉस्टैब में पूर्व-निर्धारित प्रारूप में बनाए जाते हैं। सरल शब्दों में, क्रॉन्टाब क्रॉन को बताता है कि किस समय किस काम को चलाना है।

सिस्टमड की तरह, क्रॉस्टैब जॉब्स का उपयोग ऐप लॉन्च करने और स्क्रिप्ट को बूट पर स्वचालित रूप से चलाने के लिए किया जा सकता है। एक नया क्रॉन जॉब जोड़ने के लिए, नीचे कमांड चलाएँ:

$क्रोंटैब-और

टेक्स्ट फ़ाइल के अंत में निम्नलिखित पंक्तियाँ जोड़ें (प्रत्येक रिबूट पर स्वचालित रूप से GNOME टर्मिनल लॉन्च करें):

शेल =/बिन/बैश
@reboot sleep 30 && DISPLAY=:0 gnome-terminal

आप अपने स्वयं के आदेश का उपयोग कर सकते हैं या शेल स्क्रिप्ट को पूर्ण पथ प्रदान कर सकते हैं।

ध्यान दें कि सिस्टमड के विपरीत, क्रॉन यह पता नहीं लगा सकता है कि ग्राफिकल सत्र लोड किया गया है या नहीं। आपको एक्स सर्वर लोड होने और एक प्रदर्शन पहचानकर्ता तक कुछ अनुमानित प्रतीक्षा अवधि निर्दिष्ट करनी होगी। आप नीचे दिए गए कमांड को चलाकर अपनी डिस्प्ले आईडी के बारे में जान सकते हैं:

$फेंक दिया $प्रदर्शन

कमांड या स्क्रिप्ट के निष्पादन से पहले का विलंब आपके सिस्टम कॉन्फ़िगरेशन और बूट समय पर निर्भर करता है।

आरसी स्थानीय

स्टार्टअप पर स्क्रिप्ट और कमांड चलाने का एक अन्य तरीका rc.local फ़ाइल का उपयोग करना है। ध्यान दें कि मेरे परीक्षण में, मैं ग्राफिकल सत्र लाइव होने तक स्क्रिप्ट निष्पादन को स्थगित करने में सक्षम नहीं था। किसी भी नींद की देरी को जोड़ने से लॉगिन स्क्रीन के दिखाने में ही देरी हो जाती है। इस वजह से, मुझे rc.local फ़ाइल का उपयोग करके स्टार्टअप पर ग्राफिकल ऐप्स चलाने में कोई सफलता नहीं मिली। ऊपर बताए गए अन्य सभी उदाहरणों के विपरीत, rc.local को संपादित करने के लिए रूट एक्सेस की भी आवश्यकता होती है।

rc.local फ़ाइल में कमांड / स्क्रिप्ट जोड़ने के लिए, नीचे कमांड चलाएँ (यदि यह मौजूद नहीं है तो एक नई rc.local फ़ाइल बनाता है):

$सुडो नैनो /आदि/आरसी स्थानीय

# के बीच अपनी कमांड जोड़ें! /bin/bash और 0 पंक्तियों से बाहर निकलें, जैसा कि नीचे दिखाया गया है:

#! /बिन/बाश
पथ/से/my_script.sh
बाहर निकलें 0

नीचे दिए गए आदेश को चलाकर rc.local फ़ाइल को निष्पादन योग्य बनाएं:

$सुडो चामोद+ एक्स/आदि/आरसी स्थानीय

स्टार्टअप स्क्रिप्ट को प्रभावी होने के लिए बस रीबूट करें।

निष्कर्ष

ये कुछ तरीके हैं जिनका उपयोग स्टार्टअप पर स्क्रिप्ट और ऐप्स को स्वचालित रूप से चलाने के लिए किया जा सकता है। यदि आप ऐसी स्क्रिप्ट चलाना चाहते हैं जिसके लिए रूट एक्सेस की आवश्यकता नहीं है, तो मैं स्टार्टअप एप्लिकेशन GUI ऐप का उपयोग करने की सलाह दूंगा। यदि आप रूट एक्सेस के साथ ऐप्स और स्क्रिप्ट चलाना चाहते हैं, तो मैं आपको सिस्टम स्तरीय सिस्टमड सेवा बनाने का सुझाव दूंगा।

लेखक के बारे में

नितेश कुमार

मैं एक फ्रीलांसर सॉफ्टवेयर डेवलपर और सामग्री लेखक हूं जो लिनक्स, ओपन सोर्स सॉफ्टवेयर और मुफ्त सॉफ्टवेयर समुदाय से प्यार करता है।

सभी पोस्ट देखें