/etc/udev/rules.d/70-persistent-net.rulesरिबूट के दौरान, अगर यह मौजूद नहीं है, तो फ़ाइल udv के साथ एक लिनक्स सिस्टम पर ऑटो-जेनरेट होती है। लेकिन मैं यह जानना चाहूंगा कि सर्वर को रिबूट किए बिना यह नियम फ़ाइल (कमांड के साथ) कैसे बनाई जाए।
मैं थोड़ी देर के लिए चारों ओर घूम रहा था और पाया कि नियम फ़ाइल इस स्क्रिप्ट द्वारा बनाई गई है:
/lib/udev/write_net_rules
हालांकि, इस स्क्रिप्ट को कमांड लाइन से चलाना असंभव है, क्योंकि (मुझे लगता है) यह udv द्वारा शुरू करना चाहता है, कुछ पर्यावरण चर के साथ ठीक से सेट किया गया है। इसे मैन्युअल रूप से शुरू करने से त्रुटि संदेश "लापता $ इंटरफ़ेस" होता है। यहां तक कि अगर मैं स्क्रिप्ट के शुरू होने से पहले env वेरिएबल INTERFACE = eth0 को सेट करता हूं, तब भी यह "मिसिंग वैलिड मैच" को त्रुटि देता है। उल्लेख नहीं करने के लिए मेरे पास दो इंटरफेस ( eth0और eth1) हैं और मैं चाहता हूं कि नियमों की फाइल दोनों के लिए उत्पन्न हो।
मैं भी इस तरह से udev घटनाओं को ट्रिगर करने के लिए सोच रहा था, उम्मीद है कि यह udev से ही स्क्रिप्ट शुरू कर देगा, लेकिन कुछ भी नहीं बदलता है:
udevadm trigger --type=devices --action=change
तो, क्या किसी को पता है कि /etc/udev/rules.d/70-persistent-net.rulesरिबूट के बिना फाइल में लगातार शुद्ध नियमों को कैसे पुनर्जीवित किया जाए ?
70-persistent-net.rulesन तो /lib/udev/write_net_rulesस्क्रिप्ट है। इसलिए, मैं जाँच नहीं कर सकता, लेकिन संभवत: $INTERFACEचर स्क्रिप्ट में ही सेट किया गया है। ज्यादातर शायद इसे एक तर्क के रूप में पारित किया जाता है। क्या आप हमें स्क्रिप्ट की सामग्री दिखा सकते हैं?
$INTERFACEचर का उपयोग करता है। केवल उपयोग किए जाने वाले बहुत अधिक चर हैं, कभी घोषित नहीं किए जाते हैं। ऐसा इसलिए है क्योंकि यह udev द्वारा कहा जाता है, और udev बूट पर स्क्रिप्ट चलाने से पहले सभी env चर सेट करता है।