मेरे पास एक स्क्रिप्ट थी जो नेटवर्कर के उपयोग के बिना स्वचालित रूप से मेरी वाईफाई को सक्षम करती है, लेकिन मुझे नहीं पता कि सिस्टम को बूट करते समय स्क्रिप्ट को रूट के रूप में कैसे चलाना है। मैं बूट के दौरान स्क्रिप्ट को स्वचालित रूप से कैसे चलाऊं?
मेरे पास एक स्क्रिप्ट थी जो नेटवर्कर के उपयोग के बिना स्वचालित रूप से मेरी वाईफाई को सक्षम करती है, लेकिन मुझे नहीं पता कि सिस्टम को बूट करते समय स्क्रिप्ट को रूट के रूप में कैसे चलाना है। मैं बूट के दौरान स्क्रिप्ट को स्वचालित रूप से कैसे चलाऊं?
जवाबों:
उस स्क्रिप्ट को रखें जिसे आप /etc/init.d निर्देशिका में चलाना चाहते हैं और स्क्रिप्ट को निष्पादन योग्य बनाते हैं।
chmod 755 myscript
एक बार जब आप रन लेवल डायरेक्टरी में एक प्रतीकात्मक लिंक बना लेते हैं, जिसका आप उपयोग करना चाहते हैं, उदाहरण के लिए यदि आप ग्राफिकल रनलेवल 2 में एक प्रोग्राम चलाना चाहते हैं, तो उबंटू के लिए डिफॉल्ट रनवेल, आप इसे /etc/rc2.dडायरेक्टरी में रखेंगे । आप बस इसे निर्देशिका में नहीं रख सकते, आपको संकेत देना होगा कि यह स्टार्टअप को "S" के साथ इंगित करके कैसे चलेगा और निष्पादन आदेश महत्वपूर्ण है। यह सब कुछ है कि यह एक उच्च संख्या देकर निर्देशिका में है के बाद रखें।
यदि अंतिम स्क्रिप्ट को चलाया जाना है rc.localऔर इसका नाम है S99rc.localतो आपको अपनी स्क्रिप्ट को जोड़ने की आवश्यकता है S99myscript।
ln -s /etc/init.d/myscript /etc/rc3.d/S99myscript
प्रत्येक पिछड़े संगत /etc/rc*.dनिर्देशिका में निर्देशिका के प्रतीकात्मक लिंक होते हैं /etc/init.d/।
/etc/rc2.d, बजाय rc3.dके रूप में उदाहरण में संकेत दिया। ऐसा लगता rc2.dहै कि केवल चित्रमय रन स्तर नहीं है।
cd /etc/rc`cat /etc/init/rc-sysinit.conf | grep "env DEFAULT_RUNLEVEL" | grep -oP "\d"`.dआपको ले जाएगा कि कौन सी /etc/rc?.dनिर्देशिका आपके डिफ़ॉल्ट रनवे से मेल खाती है।
rc.localऔर इसे नाम दिया गया है S99rc.localतो आपको अपनी स्क्रिप्ट जोड़ने की आवश्यकता है S99myscript।" क्या आपका मतलब है: "यदि अंतिम स्क्रिप्ट को चलाया जाना है myscriptऔर इसका नाम है S99myscriptतो आपको अपनी स्क्रिप्ट जोड़ने की आवश्यकता है S99myscript।" ???
में कमांड शामिल करें /etc/rc.local। जब भी यूजर के रनवे में बदलाव होगा, इसे चलाया जाएगा।
नोट: आपको /etc/rc.local में अंतिम पंक्ति से पहले कमांड डालना होगा जिसमें शामिल हैं: "बाहर निकलें 0"।
/etc/rc.localजिसमें शामिल हैं: exit 0
/etc/rc.localubuntu 15.10 में टिप्पणी है कि "इस स्क्रिप्ट को प्रत्येक मल्टीसियर रनलेवल के अंत में निष्पादित किया जाता है।" तो स्क्रिप्ट को बूट के दौरान कई बार चलाया जा सकता है, है ना?
crontabरिबूट के बाद अपनी स्क्रिप्ट को चलाने के लिए एक विकल्प का उपयोग करें ,
आप क्रॉन@reboot में कोड जोड़कर कर सकते हैं
जड़ उपयोगकर्ता द्वारा क्रॉन्स्ट खोलें:
$ sudo crontab -e
तल पर अगला रिकॉर्ड जोड़ें:
@reboot yourScriptPath
वही करेगा जो आप चाहते हैं।
crontab -e, जिसे सुपरसुसर विशेषाधिकारों की आवश्यकता नहीं है? मुझे आश्चर्य है, अगर यह स्क्रिप्ट चला सकता है जिसे रूट के रूप में चलाने की आवश्यकता है।
sudo crontab -eस्टार्टअप के दौरान स्क्रिप्ट को रूट के रूप में चलाने के लिए आपको कमांड चलाते हुए लाइन को जोड़ना होगा ।
/var/run/crond.reboot, यदि नहीं, तो कार्य निष्पादित नहीं करेगा
इसने मेरे लिए Ubuntu 17.04 पर काम किया:
disable_cdromआपके लिए सुविधाजनक की तरह टूर स्क्रिप्ट फ़ाइल बनाएँ । मेरे मामले में home/yterle/disable_cdrom। मेरे मामले में:
#!/bin/sh
eject /dev/sr0 -i 1
इसे अमल में लाएं chmod 775 disable_cdrom
/etc/systemd/systemऔर वहां एक serviceफ़ाइल बनाएं । उदाहरण के लिएsudo gedit /etc/systemd/system/disable_cdrom.serviceमेरा disable_cdrom.serviceऐसा दिखता है:
[Unit]
Description=Disable cdrom
[Service]
Type=oneshot
ExecStart=/bin/sh /home/yterle/disable_cdrom
[Install]
WantedBy=multi-user.target
जहां ExecStartआपकी स्क्रिप्ट को चलाने के लिए अंक हैं/bin/sh
तब systemctl enable disable_cdrom.servicesystemd सेवा को सक्षम करने के लिए चलाएँ
systemctl enable disable_cdrom.service
/etc/init.d/
निष्पादन योग्य अनुमति के साथ अपनी स्क्रिप्ट फ़ाइल शामिल करें फिर अलग-अलग रन स्तर सेट करें
$ update-rc.d script-name default
यह आपकी स्क्रिप्ट को बूट स्टार्टअप पर डाल देगा।
update-rc.d script-name enable?
स्क्रिप्ट को जोड़ने में सावधानी बरतने के कारण rc.local- मैं इसके कारण स्प्लैश स्क्रीन में फंस गया था। दबाने Alt+ से F1पता चलता है कि स्प्लैश स्क्रीन के पीछे क्या चल रहा था (स्क्रिप्ट rc.localचल रही थी)।
मैं इससे बाहर नहीं निकल सका।
कुछ भी काम नहीं करता है।
मुझे एक USB उबंटू छवि से बूट करना था, ढूंढना rc.local, अपने आप को फ़ाइल और इसे हटाने की अनुमति देना। मुझे लगता है कि आपको सामान नहीं करना चाहिए यदि आप नहीं जानते कि आप क्या कर रहे हैं।
autostartमैनिफ़ेस्ट में या*.serviceकई स्थानों परinit.dया साथ ही फ़ाइलों में कॉन्फ़िगर किए गए हैंcrontab। इसे देखें: unix.stackexchange.com/a/525845/43233