सबसे पहले, एक स्पष्टीकरण क्रम में है:
- init.d वह निर्देशिका है जो सेवाओं को नियंत्रित करने वाली लिपियों को संग्रहीत करती है, जो सेवाओं की शुरुआत और रोक को नियंत्रित करती है जैसे कि
httpd
याcron
- rc.local एक ऐसी सेवा है जो सिस्टम स्टार्टअप प्रक्रिया के भाग के रूप में मनमानी लिपियों को चलाने की अनुमति देती है
इस संदर्भ में कि क्या इसका बेहतर उपयोग करना rc.local
या cron
अपनी स्क्रिप्ट को चलाना, मुझे संदेह है कि यह व्यावहारिकता से अधिक सौंदर्यशास्त्र का सवाल है। cron
, एक कार्य अनुसूचक के रूप में, एक मशीन के रखरखाव या रखरखाव करने के लिए एक विधि के रूप में करना है, जैसे कि अद्यतन की जाँच करना, कैश की सफाई करना, या सुरक्षा ऑडिट करना। इसका मतलब यह नहीं है कि यह उन कार्यों को करने तक सीमित है, क्योंकि यह निर्दिष्ट समय (जैसे @reboot
) पर वांछित किसी भी स्क्रिप्ट या कमांड को चला सकता है ।
rc.local
दूसरी ओर, उपयोग करना , सिस्टम कॉन्फ़िगरेशन प्रकार के कार्य के भीतर अधिक गिर जाएगा, जैसा rc.local
कि मशीनों init सिस्टम द्वारा निष्पादित किया जा रहा है, आमतौर पर मशीनों के नेटवर्क कॉन्फ़िगरेशन, सेवाओं या वातावरण (लेकिन फिर से, केवल तक सीमित नहीं है) के लिए जिम्मेदार है ये कार्य)।
हालांकि, इन दोनों बिंदुओं को इस तथ्य से गुस्सा होना चाहिए कि सभी init सिस्टम एक rc.local
तंत्र की पेशकश नहीं करते हैं , और सभी क्रोन डेमॉन एक @reboot
psuedo टैग की पेशकश नहीं करते हैं ।
बोनस अंक
जैसा कि उल्लेख किया गया है, init.d
वह निर्देशिका है जिसमें ऐसी स्क्रिप्ट शामिल हैं जो सेवाओं को नियंत्रित करती हैं जिन्हें आपके सिस्टम पर शुरू या रोका जा सकता है (कम से कम मशीनों पर जो एक SysV
प्रकार की init प्रणाली का उपयोग करती हैं)। आपके init सिस्टम और आपकी स्क्रिप्ट के उद्देश्य के आधार पर, आपकी स्क्रिप्ट को init स्क्रिप्ट में बदलने के लिए उचित हो सकता है कि एक सेवा के रूप में उसी तरह चलाया जाए। हालाँकि, यह आपके init सिस्टम पर बहुत अधिक निर्भर है क्योंकि इन फ़ाइलों का निर्माण कैसे किया जाता है, इसके आस-पास की रूपरेखा बहुत भिन्न हो सकती है।
अंतिम शब्द
यह भी ध्यान दिया जाना चाहिए कि आम तौर पर स्क्रिप्ट को समाप्त करने के .sh
बजाय एक प्रत्यय के साथ समाप्त होता है .txt
, क्योंकि यह तुरंत बताता है कि फ़ाइल एक पाठ फ़ाइल के बजाय एक शेल स्क्रिप्ट है। कहा जा रहा है, बशर्ते कि या तो फ़ाइल के शीर्ष पर एक शेबंग ( #!/bin/bash
) हो, या इसे कहा जाता है bash /path/to/script.whatever
, यह स्क्रिप्ट को निष्पादित करने के मामले में कोई बात नहीं होनी चाहिए।