उबंटू में स्टार्टअप चीजों को करने के लिए कम से कम तीन "उपयुक्त" तरीके हैं (यह मानते हुए कि आप इसे केवल माउंट नहीं करना चाहते हैं), वरीयता क्रम में घटते हुए यहां सूचीबद्ध हैं:
/etc/init/*.conf
(कल का नवाब)
/etc/init.d/*
(Sysvinit)
/etc/rc.local
(रनलेवल चेंज स्क्रिप्ट)
Udv नियमों का उपयोग करने की संभावना भी है, लेकिन यह जटिल होगा। मैं इसके खिलाफ सलाह देता हूं। इतनी छोटी सी चीज के लिए sysvinit स्क्रिप्ट ओवरकिल है, इसलिए मैं अन्य दो विकल्पों पर ध्यान केंद्रित करूंगा। रनलेवल परिवर्तन स्क्रिप्ट सबसे सरल (हालांकि कम से कम पसंदीदा) है, इसलिए मैं वहां शुरू करूंगा।
/etc/rc.local
फ़ाइल बस द्वारा निष्पादित किया जाता है /etc/init.d/rc.local
sysvinit स्क्रिप्ट है, जो (डिफ़ॉल्ट रूप से) है रनलेवल "पर" किसी भी सामान्य का उपयोग करने जा पर पिछले निष्पादित (जब जैसे आप सामान्य रूप से बूट, लेकिन आप नीचे नहीं बंद या पुनर्प्राप्ति मोड में जाते हैं)। बूट डिवाइस की स्थापना को लागू करने के लिए, बस इसे अंत में जोड़ें /etc/rc.local
, यह मानते हुए कि आपकी फ़ाइल को कॉल किया गया है /srv/diskimage
और आप /dev/loop0
लूप के रूप में उपयोग करना चाहते हैं :
losetup /dev/loop0 /srv/diskimage
वास्तव में यह सब वहाँ है। बेशक, अपने सेटअप पर जो भी सबसे अच्छा काम करता है, उसके साथ फ़ाइल नाम बदलें।
यदि आप इसके बारे में थोड़ा और अधिक विशिष्ट होना चाहते हैं, तो आप इसके लिए एक अपस्टार्ट जॉब बना सकते हैं जो एक बार फाइलसिस्टम को माउंट करने के बाद इसे सेट करता है। एक उदाहरण निम्नलिखित होगा, यह मानते हुए कि /srv
आपकी diskimage
फ़ाइल में माउंट बिंदु था :
description "Setup loop devices after filesystems are mounted"
start on mounted MOUNTPOINT=/srv
task
exec losetup /dev/loop0 /srv/diskimage
वैचारिक रूप से अनुसरण करने के लिए यह पर्याप्त सरल होना चाहिए: पहली पंक्ति मानव पाठकों के लिए एक टिप्पणी है, और यह अपस्टार्ट को निर्देश है कि जब तक /srv
फाइलसिस्टम माउंट न हो जाए, तब तक प्रतीक्षा करें , लॉसेटअप प्रक्रिया को निष्पादित करें, और प्रक्रिया समाप्त होने पर सफलतापूर्वक समाप्त होने पर विचार करें (" कार्य ", एक ऐसी सेवा के विपरीत है जो निरंतर है)। बस उन सामग्रियों को एक फ़ाइल मिलान में रखें /etc/init/*.conf
। मैं /etc/init/losetup.conf
खुद चुनूंगा।
इस /etc/rc.local
तरह के एक साधारण बात के लिए ऊपर की ओर नौकरियों के फायदे छोटे लेकिन महत्वपूर्ण हैं। सबसे पहले, /etc/rc.local
पदावनत किया जाता है, और इसका उपयोग "गंदे सैंडबॉक्स के रूप में चीजों को प्राप्त करने के लिए" किया जाता है, जो इन दिनों बहुत अधिक लोगों द्वारा फहराया जाता है। इसके उपयोग पर अन्य कारणों के अलावा, कुछ प्रोग्राम जो उस फ़ाइल का उपयोग करते हैं, वे केवल सामग्री को अधिलेखित कर देंगे, और विभिन्न स्क्रिप्ट्स को समेटना मुश्किल है जिन्हें एक ही फ़ाइल में जाने की आवश्यकता है। दूसरा, अपस्टार्ट वास्तव में आपके लिए निर्भरता की जांच कर रहा है (यह सुनिश्चित करना कि फाइलसिस्टम पहले माउंट किया गया है), इसलिए यदि फाइल सिस्टम को बढ़ाने में कोई समस्या है तो यह नहीं होगा।लूप डिवाइस को सेट करने का प्रयास करें .... लेकिन एक बार जब आप इसे हल और माउंट कर लेंगे। तीसरा, अपस्टार्ट बहुत अधिक लचीला है: आप, उदाहरण के लिए, अप्रयुक्त लूप डिवाइस को खोजने के लिए पर्याप्त स्मार्ट हो सकते हैं, और "एमिट" जो अन्य अपस्टार्ट नौकरियों में उपयोग के लिए लूप डिवाइस है, उसी तरह जैसे हमने "MOUNNOINT" चर का उपयोग किया था इस उदाहरण में ऊपर।
/etc/init.d/something
, या/etc/rc.local
, लेकिन मेरा सुझाव है कि जो भी विधि काम करती है, उसके साथ बने रहें।