सेंटोस 6 और अपस्टार्ट


18

नया CentOS 6 अपस्टार्ट के साथ आता है, init को प्रतिस्थापित करता है। मैं एक / etc / inittab फ़ाइल को नए अपस्टार्ट प्रारूप में बदलने की कोशिश कर रहा हूं। इस विशेष सर्वर में केवल 15 या तो इनटैब प्रविष्टियां हैं, हालांकि, अन्य सर्वरों में> 30 हैं। हम मुख्य रूप से इनटैब और अपस्टार्ट के 'रिस्पना' भाग को चाहते हैं। हालाँकि, मैं उन सभी अपस्टार्ट डॉक्यूमेंट को पढ़ रहा हूँ जो मुझे मिल सकते हैं, (जो उबंटू के आधार पर बहुत अधिक है, और जाहिरा तौर पर अपस्टार्ट के पुराने संस्करण पर आधारित है) और कहीं भी नहीं मिल रहा है। मैं एक विन्यास फाइल बना सकता हूं (इसे /etc/init/test.conf पर कॉल कर सकता हूं)। फ़ाइल में यह (नोट, अज्ञात) है

start on runlevel [345]
stop on starting shutdown

respawn
#Comment about what it does
exec su -c "/usr/bin/ssh -2CNL 11111:127.0.0.1:11111 10.10.1.1" username

अगर मैं जारी करता हूं initctl reload-configurationतो नौकरी मान्यता प्राप्त है। मैं इसे कॉल करके शुरू कर सकता हूं initctl start testऔर नौकरी शुरू हो जाएगी।

हालाँकि, यह केवल रिबूट पर काम नहीं करेगा, केवल मैन्युअल रूप से। मैंने निम्नलिखित कमांड को संशोधित करने की कोशिश की है, सभी बिना किसी भाग्य के

start on started

start on (local-filesystems and net-device-up IFACE!=lo)

start on net-device-up IFACE=eth0 

और लगभग एक दर्जन अन्य तरीकों से मैं विभिन्न उदाहरणों में उल्लेख कर सकता हूं। स्क्रिप्ट शुरू करने के लिए कोई नहीं लगता है। (test.conf, इस फ़ोल्डर की अन्य सभी फ़ाइलों की तरह, रूट के स्वामित्व में हैं, और 644)

क्या मुझे कुछ स्पष्ट रूप से याद आ रहा है?

जवाबों:


32

मुझे उन लोगों के लिए एक बहुत, बहुत, बहुत मददगार अपस्कर्ट स्क्रिप्ट मिली, जिन्हें भविष्य में समस्या हो रही है। इसे / etc / init / में डालें

# /etc/init/debug.conf
start on ( starting JOB!=debug \
or started JOB!=debug \
or stopping JOB!=debug \
or stopped JOB!=debug )
script
exec 1>>/tmp/log.file
echo -n "$UPSTART_JOB/$UPSTART_INSTANCE ($0):$$:`date`:"
echo "Job $JOB/$INSTANCE $UPSTART_EVENTS. Environment was:"
env
echo
end script

यह स्क्रिप्ट मूल रूप से सभी नौकरियों को लॉग करती है जो शुरू या रोकती हैं। मैंने पाया है कि CentOS 6 रनवे के बारे में कुछ भी 'उत्सर्जित' नहीं करता है। (और न ही कुछ अन्य सामान्य घटनाओं की मैंने कोशिश की थी। ')। /Tmp/log.file में डिबग जॉब बनाने वाली लॉग फ़ाइल को देखना बहुत मददगार था। मेरी स्क्रिप्ट की शुरुआत को बदलकर:

start on runlevel [345]

सेवा

start on started sshd

मेरी सभी नौकरियां सही ढंग से शुरू होती हैं। यह पीछे का दर्द था, क्योंकि हर उदाहरण के बाद मैंने पाया कि पूर्व वाक्यविन्यास का उपयोग किया गया था।


अगर मैं एक से अधिक बार वोट दे सकता हूं, तो मुझे होगा।
पीटर मूस

15

नेक्रोपोस्टिंग के लिए खेद है, लेकिन मैं निम्नलिखित का उपयोग करके इस समस्या को हल करने में कामयाब रहा:

start on stopped rc RUNLEVEL=[345]

"रोका" एक टाइपो नहीं है - आरसी एक रनवे में प्रवेश करने पर रोक लगता है।


2
पारितोषिक के लिए धन्यवाद! नेक्रोपोस्टिंग महान है, जब इसके सहायक!
ब्रायन

5

यह वही है जो मैंने किया था (CentOS 6, Upstart 0.6.5) रिस्पना मुद्दों को डिबग करने के लिए। एक अलग टर्मिनल में, करते हैं

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