क्या प्रत्येक स्क्रिप्ट /etc/network/if-up.d में स्थित होती है, जब कोई इंटरफ़ेस लाया जाता है?


12

जब नेटवर्क इंटरफ़ेस लाया जाता है तो क्या सभी स्क्रिप्ट /etc/network/if-up.d में चलती हैं?

यदि हां, तो इंटरफेस फ़ाइल में पोस्ट-अप कमांड क्या है?


1
सभी " .d" फ़ोल्डर सामग्री, पारंपरिक रूप से निष्पादित की जाती है। उनमें से कुछ वास्तव में " .sh" फ़ाइल नाम विस्तार की आवश्यकता है। सभी फाइलें निष्पादन योग्य होनी चाहिए।
kolypto

जवाबों:


14

हां आम तौर पर किसी भी स्क्रिप्ट को निष्पादन योग्य के रूप में चिह्नित किया जाता है और उस फ़ोल्डर में रखा जाता है। रन-पार्ट्स का उपयोग किया जाता है क्योंकि फ़ाइलों के पास नामों के एक विशिष्ट सेट तक सीमित होता है।

post-upका उपयोग कर के रूप में एक ही बात करता है up। If-up.d में किसी स्क्रिप्ट को प्लेस करना उसी तरह है जैसे post-upकिसी स्क्रिप्ट या कमांड को उस पॉइंट का इस्तेमाल करना कहीं और होता है। आमतौर पर आप अप का उपयोग करेंगे। पोस्ट-अप जब आपको बस एक ही इंटरफ़ेस के लिए एक कमांड चलाने की आवश्यकता होती है। जब आपके पास कुछ और जटिल होगा तो आप एक स्क्रिप्ट बनाएंगे।

आदमी इंटरफेस

...
up command

post-up command
      Run  command  after  bringing the interface up.  If this command
      fails then ifup aborts, refraining from marking the interface as
      configured  (even  though it has really been configured), prints
      an error message, and exits with status 0.   This  behavior  may
      change in the future.
...
There  exists  for  each  of  the  above  mentioned options a directory
/etc/network/if-<option>.d/ the scripts in which are run (with no argu-
ments) using run-parts(8) after the option itself has been processed.

आदमी भाग-दौड़ करता है

run-parts  runs  all  the  executable  files  named  within constraints
described below,

If  the  --lsbsysinit  option  is not given then the names must consist
entirely of upper and lower  case  letters,  digits,  underscores,  and
hyphens.
...
Files are run in the lexical sort  order  of  their  names  unless  the
--reverse  option  is given, in which case they are run in the opposite
order.

1
इसलिए यदि आप चाहते हैं कि कोई स्क्रिप्ट केवल इंटरफ़ेस उठने के बाद ही चल रही हो और उसे तैयार होने के लिए if-up.d फ़ोल्डर में सामान की आवश्यकता हो, तो आपको या तो इसका नाम देना होगा, इसलिए यह उस आदेश के बाद शाब्दिक क्रम में आएगा जिसे आपको संचालित करने की आवश्यकता है , या किसी अन्य निर्देशिका में डाल दिया और पोस्ट-अप कमांड के माध्यम से चला। क्या यह सही है?
Spig

1
हां, मेरा ऐसा मानना ​​है।
Zoredache

1
इतना अच्छा विस्तृत उत्तर। 10 साल बाद भी, अभी भी अंतर्दृष्टि प्रदान कर रहा है।
Xofo

आपको वास्तव में रन-पार्ट्स मैन पेज को अच्छी तरह से पढ़ना होगा ताकि आप पहचान सकें, कि .sh एक्सटेंशन का उपयोग करके अन्यथा सही फ़ाइल नाम वाली स्क्रिप्ट भी नहीं चलेगी। Quote: "... अगर डॉट की वजह से स्क्रिप्ट को स्किप करने के बारे में कोई जानकारी होती है तो यह बहुत मदद करेगा। मैंने समस्या निवारण में बहुत समय गंवा दिया ... कथन '... नामों में पूरी तरह से ऊपरी और निचले मामले शामिल होने चाहिए। अक्षर, अंक, अंडरस्कोर, और हाइफ़न। ' यह पर्याप्त नहीं है। मैंने इसे दो बार पढ़ा और इससे मुझे यह समझने में मदद नहीं मिली कि मेरा मुद्दा कहाँ है। यह स्पष्ट रूप से लिखा जाना चाहिए कि लिपियों वाली स्क्रिप्ट को छोड़ दिया गया है। "
क्रिस डब्ल्यूडब्ल्यू

यह 'बग' है डेबियन में "ठीक नहीं होगा": रन-भागों श विस्तार के साथ स्क्रिप्ट न चलने bugs.launchpad.net/ubuntu/+source/debianutils/+bug/38022
ChrisW
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.