बूट पर चलने के लिए स्क्रिप्ट प्राप्त करना, लॉगिन पर नहीं


11

मशीन बूट होने पर मैं एक विशिष्ट स्क्रिप्ट कैसे चला सकता हूं (अधिमानतः सुपरसुअर के रूप में नहीं)। यह बूट पर चलने वाली आखिरी चीज हो सकती है। मैं अधिकतर यही चाहता हूं कि स्क्रिप्ट काम करे, भले ही कोई उपयोगकर्ता लॉग इन न करे।


1
@ ब्रूस इस पर एक नज़र डालें -> askubuntu.com/questions/9382/…
18

1
आप अपस्टार्ट या क्रोन या शायद अन्य तरीकों की एक पूरी गुच्छा का उपयोग कर सकते हैं। पता करने के लिए एक महत्वपूर्ण बात यह भी है कि कैसे है जल्दी यह कर सकते हैं चलाते हैं। जैसे इसे माउंट करने के लिए किसी विशेष फाइलसिस्टम की आवश्यकता होती है, क्या इसे चलाने के लिए X की आवश्यकता होती है, क्या इसे DBus की आवश्यकता है, क्या इसे नेटवर्किंग की आवश्यकता है- या सामान्य रूप से अधिक: क्या इसे प्रस्तुत करने के लिए किसी संसाधन की आवश्यकता है?
JanC

@JC: हाँ वास्तव में, इसे आपके द्वारा पूछे गए हर चीज़ के बारे में (एक्स को छोड़कर) की आवश्यकता है, यही कारण है कि मैं इसे चलाने के लिए बहुत ही आखिरी चीज़ बनना चाहूंगा। वास्तव में पहले इसे चलाने का कोई कारण नहीं है।
मालाबार

@ शहला: शांत, धन्यवाद। लेकिन अगर मैं उस विधि का उपयोग करूं तो स्क्रिप्ट कितनी जल्दी चलेगी? जैसा कि मैंने ऊपर उल्लेख किया है, यह सबसे अच्छा है अगर यह बहुत अंतिम चीजों में से एक है (लॉगिन से पहले)।
मालाबार

जब तक आप टर्मिनल सर्वर में प्रवेश नहीं करना चाहते और / या आपके पास नेटवर्क शेयर पर अपना $ HOME है, तब तक लॉगिन की आवश्यकता नहीं है ... ;-)
JanC

जवाबों:


8

मैं उपयोग करने की सलाह दूंगा cron@rebootआपके उपयोगकर्ता के रूप में प्रत्येक रिबूट पर आपकी नौकरी का विशेष समय मूल्य होगा। उदाहरण के लिए, चलाएं crontab -eऔर उपयोग करें:

@reboot /home/yourself/bin/some_script_to_run

विशेष समय प्रारूपों पर अधिक जानकारी के लिए, देखें man 5 crontab


धन्यवाद, यह काफी आसान लगता है। यह इस बात पर निर्भर नहीं करता है कि कौन सा उपयोगकर्ता क्रोनजोब को सही बनाता है? यह लॉगिन की परवाह किए बिना बूट के अंत में चलता है?
मालाबार

यह बिल्कुल इस बात पर निर्भर करता है कि क्रोनजोब का निर्माण किसने किया - यह उस उपयोगकर्ता के रूप में चलेगा। लेकिन यह उन पर निर्भर नहीं करता है कि लॉग इन किया जाए।
कीस कुक

ध्यान रखें कि यह स्क्रिप्ट तब चलती है जब क्रोन डेमॉन शुरू किया जाता है इसलिए यह पॉसिबल होता है कि अन्य सिस्टम जिसकी आपको आवश्यकता हो सकती है वह अभी तक तैयार नहीं है।
फोनिक्स

4

एक संभावना Upstart का उपयोग करने के लिए है। यह निर्दिष्ट करता है कि आप निर्भरता के संदर्भ में अपनी स्क्रिप्ट चलाना चाहते हैं, उदाहरण के लिए "जब फाइलसिस्टम आरोहित होता है और नेटवर्क इंटरफ़ेस eth0ऊपर और चल रहा होता है"। एक फ़ाइल बनाएं /etc/init/bruce_script.conf(आपको फ़ाइल को रूट के रूप में बनाने की आवश्यकता है) जिसमें कुछ इस तरह हो:

description "Bruce's boot script"
start on filesystem and net-device-up IFACE=eth0
task
exec su -c '/home/bruce/script' bruce

अधिक जानकारी के लिए upstart प्रलेखन से परामर्श करें , विशेष रूप से उस कॉन्फ़िगरेशन फ़ाइल में आप क्या डाल सकते हैं, इसकी एक सूची के लिए init(5)मैनुअल पेज


क्या ऊपर की घटनाओं की एक सूची है जिसका उपयोग किया जा सकता है?
सूर्यास्त

@ मर्कस: नहीं कि मुझे पता है। मानक घटनाओं में अनुभाग 7 (इसलिए dpkg -L upstart |grep /man7/) में एक मैनुअल पेज होता है , और आप मौजूदा स्क्रिप्ट में ट्रिगर के रूप में उपयोग और उपयोग की जाने वाली घटनाओं को देख सकते हैं /etc/init
गिल्स एसओ- बुराई को रोकें '
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.