upstart स्क्रिप्ट: नेटवर्किंग के ऊपर जाने के बाद एक कार्य को चलाएं


23

मैं अपने वर्तमान सर्वर सेटअप को नए हार्डवेयर में स्थानांतरित करने के लिए काम कर रहा हूं, और ubuntu karmic koala से ल्यूसिड लिनेक्स की ओर पलायन कर रहा हूं। वर्तमान में मैं gw6c (gogo6 वेबसाइट से संकलित, रिपॉजिटरी से संस्करण के विपरीत) का उपयोग करके अपने सिस्टम के लिए ipv6 एक्सेस प्राप्त कर रहा हूं। कर्म कोअला प्रणाली पर, मैंने ipv6 क्लाइंट को आरंभ करने के लिए सरल init.d स्क्रिप्ट का उपयोग किया

 #! /bin/sh
/usr/local/gw6c/bin/gw6c -f /usr/local/gw6c/bin/gw6c.conf

मुझे लगता है कि यह किसी भी रनवे पर चलता है, इसका अनुवाद करना चाहिए

respawn
console none

start on startup

stop on shutdown

script
exec /usr/local/gw6c/bin/gw6c -f /usr/local/gw6c/bin/gw6c.conf
emit free6_ipv6_started
end script

यह ठीक काम initctrl से शुरू हुआ है, लेकिन यह स्पष्ट रूप से शुरू करने में विफल रहता है जब यह बूट होता है। - इसकी स्थिति रुकने / प्रतीक्षा करने की। यह ठीक काम करता है (और रिस्पना) तब शुरू होता है जब तक अन्यथा। किसी भी विचार पर जहां मैं गलत हो रहा हूं, और क्या उचित होगा 'बहस' पर शुरू?

संपादित करें: सटीक त्रुटि 'init: gw6c मुख्य प्रक्रिया (xxx) की स्थिति 8' के साथ समाप्त हो गई है और इसके बाद प्रक्रिया रिस्पना द्वारा जारी की गई है, जिसमें xxx एक PID i संदिग्ध है। मैं भी आधा संदेह कर रहा हूं कि यह कारण है कि gw6c नेटवर्किंग शुरू होने से पहले शुरू होता है, और मुझे gw6c से पहले मेरे eth0 की आवश्यकता है

जवाबों:


27

जाहिरा तौर पर

respawn
console none

start on (local-filesystems and net-device-up IFACE!=lo)
stop on [!12345]

script
chdir /usr/local/gw6c/bin/

exec /usr/local/gw6c/bin/gw6c 
end script

काम करने लगता है


हाँ, मैंने अभी हाल ही में कुछ लिखा है जो नेट-डिवाइस-अप और नेट-डिवाइस-डाउन का उपयोग करते हैं जो पूरी तरह से काम करते हैं।
एंडी शेलम

मैं इसे कहीं भी प्रलेखन में नहीं मिला। एक स्थानीय मेलिंग सूची में किसी ने मेरी मदद की
जर्म्समैन गीक

यह ठीक वही है जिसकी मुझे तलाश थी। यह अभी भी कहीं भी नहीं है जो मुझे मिल सकता है।
नाथन

4

Gw6c में स्क्रिप्ट शुरू करें

/etc/network/if-up.d

इंटरफ़ेस में आने के बाद उस फ़ोल्डर की सभी स्क्रिप्ट चलती हैं। यदि आप केवल यह चाहते हैं कि जब eth0 आता है, तो eth0 प्रविष्टि को संपादित करें

/etc/network/interfaces

और स्क्रिप्ट में कॉल जोड़ें

iface eth0 inet dhcp
  up /etc/init.d/gw6c restart

मैं यह भी सुझाव दूंगा कि इंटरफ़ेस ऑफ़लाइन होने से पहले सुरंग को बंद करने के लिए पूर्व-डाउन स्क्रिप्ट को जोड़ना।

एक बार जब आप ऐसा करते हैं और एक कार्यान्वयन पाते हैं जो काम करता है, तो इसे वापस यहां पोस्ट करें ताकि मैं इसका उपयोग कर सकूं। मुझे अपने लैपटॉप पर gw6c मिला है, लेकिन मैं इस प्रकार इसे स्वचालित करने के लिए आलसी हो गया हूं।


मैंने जो पूर्व स्क्रिप्ट पोस्ट की है वह बहुत अच्छी तरह से काम करती है- हालाँकि मुझे इसे मैन्युअल रूप से पुनः आरंभ करने की आवश्यकता है, क्या मेरा कनेक्शन स्वयं को रीसेट करना चाहिए- यह अपस्टार्ट के लिए है, जो कि ल्यूसिड लिनेक्स पर डिफ़ॉल्ट है।
जर्नीमैन गीक

1

धन्यवाद "जर्नीमैन गीक" :) आपने मुझे बहुत समय बचाया। मैं /etc/init.d/gw6c स्क्रिप्ट के साथ लड़ रहा था, "sysv-rc-conf -p" के साथ कुछ समय की कोशिश कर रहा था और सोच रहा था कि यह काम क्यों नहीं कर रहा है (उर्फ डब्ल्यूटीएफ?)।

respawn
console none

start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]

script

exec /etc/init.d/gw6c start
end script

थोड़ा संशोधित ("रनलेवल" और कमांड निष्पादित) स्क्रिप्ट ने काम किया! :) :) :)


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.