उबंटू में, क्या सभी ऑटोस्टार्ट सेवाओं की सूची दिखाने के लिए एक कमांड है?


21

उबंटू में,

  1. क्या सभी ऑटोस्टार्ट सेवाओं की सूची दिखाने के लिए एक कमांड है?
  2. क्या यह जांचने के लिए कोई आदेश है कि क्या किसी सेवा को बूट समय पर ऑटोस्टार्ट किया गया है या नहीं?

मैंने Google और IRC किया। मुझे इसका जवाब नहीं मिल रहा है। शायद उबंटू में ऐसी कोई कमांड मौजूद नहीं है। शुरुआत में, मैंने सोचा था कि सभी ऑटोस्टार्ट सेवाएं चालू होंगी /etc/rc2.d/, लेकिन मैं उस बारे में गलत था। कुछ लोगों के तहत ही कॉन्फ़िगर किया गया है /etc/init/*.conf। फिर मैंने कोशिश की chkconfig उपकरण (इसे मैन्युअल रूप से स्थापित करें), यह हर समय काम नहीं करता है। उदाहरण के लिए, यह गलत परिणाम देता है mongodb जो से स्वपोषित है /etc/init/mongodb.conf

service --status-all तथा initctl list ऑटोस्टार्ट स्थिति के बजाय केवल सेवाओं की वर्तमान स्थिति बता सकते हैं। update-rc.d स्थिति दिखाने के बजाय ऑटोस्टार्ट स्थिति को बदलने के लिए एक आदेश है।

अगर मेरे सवाल का कोई जवाब नहीं है, तो मैं सोच रहा हूं कि उबंटू में ऑटोस्टार्ट सेवाओं की जांच करना इतना कठिन क्यों है।


मुझे लगता है chkconfig --list सही काम करेगा? on इसका मतलब है कि सर्विस उस रनवे पर चल रही है, और सिस्टम बूट होने पर यह सर्विस अपने आप शुरू हो जाएगी।
max

1
जैसा कि मैंने अपने प्रश्न में पोस्ट किया है, चकोन्फिग हमेशा काम नहीं करता है। उदाहरण के लिए, यह मेनगोडब के लिए गलत परिणाम देगा। मुझे लगता है कि यह हो सकता है क्योंकि मोंगोडब ऑटोस्टार्ट करने के लिए /etc/init/mongodb.conf का उपयोग करता है।
SSS

कैसा रहेगा ls /etc/rc?.d ?
toxaq

जवाबों:


10

उबंटू का उपयोग करता है Upstart पारंपरिक के बजाय init प्रणाली। Upstart init से अधिक मजबूत है, लेकिन यह थोड़ा अधिक जटिल है init

इसके विपरीत, अपस्टार्ट, घटना आधारित है। एक "घटना" "बूटिंग" जैसा कुछ हो सकता है ... या यह बहुत अधिक विशिष्ट हो सकता है, जैसे "नेटवर्क अभी उपयोग करने के लिए तैयार है"। आप निर्दिष्ट कर सकते हैं कि कौन सी स्क्रिप्ट किन घटनाओं पर निर्भर करती है। जब भी सीपीयू उपलब्ध हो, तब तक किसी भी घटना का इंतजार नहीं कर सकता।

इस घटना-आधारित प्रणाली का एक और फायदा है: आप सिस्टम के उठने और चलने के बाद भी सैद्धांतिक रूप से इसका उपयोग कर सकते हैं। अपस्टार्ट को अंततः बाहरी उपकरणों जैसे कि थंब ड्राइव (वर्तमान में udev और hal द्वारा संभाला जाता है), या विशिष्ट समय पर प्रोग्राम चलाने (वर्तमान में क्रोन द्वारा नियंत्रित) जैसे कार्यों को संभालने के लिए स्लेट किया जाता है।

जैसा कि आपको अभी पता होना चाहिए, एक मृत डेमॉन (जो स्टार्टअप में नहीं चलता है) एक घटना के कारण जीवित हो सकता है और शुरू हो सकता है।

उबंटू में पुरानी एसवाईवी फ़ाइलों के लिए अपस्टार्ट और /etc/init.d दोनों के लिए / etc / init है। इसमें कुछ फाइलें नियमित SysV Init स्क्रिप्ट हैं जो अभी तक माइग्रेट नहीं की गई हैं। लेकिन कुछ सेवाएँ जो माइग्रेट की गई हैं वे /etc/init.d से / lib / init / upstart-job के लिंक को बनाए रखती हैं। यदि आप उनमें से एक चलाते हैं, तो यह काम करता है, लेकिन यह पहले चेतावनी देता है:

/Etc/init.d के माध्यम से init स्क्रिप्ट को लागू करने के बजाय, सेवा का उपयोग करें (8) उपयोगिता, उदा। service mysql restart

चूँकि आप जिस स्क्रिप्ट को लागू करने का प्रयास कर रहे हैं, उसे अपस्टार्ट नौकरी में बदल दिया गया है, आप पुनः आरंभ (8) उपयोगिता का उपयोग भी कर सकते हैं, उदा। mysql को पुनरारंभ करें।

अपस्टार्ट मशीन पर, अपस्टार्ट से इनिट आता है। एक मास्टर आरसी स्क्रिप्ट चलाने के बजाय जो स्क्रिप्ट को एक विशिष्ट रनलेवल के लिए कॉल करता है, उपस्टार्ट का इनिट इसकी नौकरी निर्देशिका से नौकरियां लेता है।

अब हम जानते हैं कि ऑटोस्टार्ट डेमॉन को सूचीबद्ध करने का कोई सरल तरीका नहीं है, आपको सभी डेमॉन को सूचीबद्ध करना चाहिए और उन्हें एक-एक करके जांचना चाहिए। डेमन द्वारा शुरू किया जा सकता है init या द्वारा upstart या बाद की घटना से भी। इस सूची को प्राप्त करने का सबसे सरल तरीका इस कमांड को शेल में चलाया जा रहा है:

initctl show-config

आउटपुट इस तरह दिखता है:

...
hostname
  start on startup
udevtrigger
  start on ((startup and started udev) and not-container)
tty2
  start on (runlevel [23] and ((not-container or container CONTAINER=lxc) or container CONTAINER=lxc-libvirt))
...

पहले की तरह कुछ आइटम इतना सरल है, hostname स्टार्टअप पर शुरू होता है। लेकिन अन्य आइटम अधिक जटिल लग सकते हैं। (लेकिन सौभाग्य से मानव पढ़ने योग्य :-))


मुझे पता था कि आपने क्या पोस्ट किया है। हालांकि कुछ नए भी हैं जो मुझे नहीं पता, फिर भी वे मेरी समस्या का समाधान नहीं कर सकते। मैं सिर्फ यह जानना चाहूंगा कि क्या कोई ऐसा आदेश है जो आसानी से (ऊपर और नीचे की दोनों सेवाओं के लिए) काम कर सकता है। ऐसा लगता है कि ubuntu एक नहीं है। अफ़सोस की बात है! वैसे, "initctl" केवल पारंपरिक इनिट प्रणाली के बजाय अपस्टार्ट सेवाओं को संभाल सकता है। यदि कोई आसान तरीका नहीं है, तो मुझे कठिन तरीके का उपयोग करना होगा ... धन्यवाद।
SSS

मैं ध्यान देता हूँ, जबकि नहीं ग़लत ऑबंटू के आधुनिक संस्करण सिस्टमड के लिए चले गए हैं। इस उत्तर का एक अच्छा हिस्सा अभी भी मान्य है
Journeyman Geek

5

वास्तव में, सभी सेवाएँ केवल /etc/init.d के अंतर्गत मौजूद हैं:

rc0.d contains the services which runs in runlevel 0
rc1.d contains the services which runs in runlevel 1
rc2.d contains the services which runs in runlevel 2
rc3.d contains the services which runs in runlevel 3
rc4.d contains the services which runs in runlevel 4
rc5.d contains the services which runs in runlevel 5
rc6.d contains the services which runs in runlevel 6

एक और बात, सभी सेवाएँ मौजूद हैं rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d भी, लेकिन यह एक प्रतीकात्मक कड़ी है /etc/init.d केवल।

यहाँ देखें यह सामग्री है rc1.d निर्देशिका:

lrwxrwxrwx 1 root root  20 Aug 17 14:54 K15pulseaudio -> ../init.d/pulseaudio
lrwxrwxrwx 1 root root  22 Nov 28 18:47 K20acpi-support -> ../init.d/acpi-support
lrwxrwxrwx 1 root root  20 Aug 17 14:54 K20kerneloops -> ../init.d/kerneloops
lrwxrwxrwx 1 root root  23 Nov  7 15:24 K20openbsd-inetd -> ../init.d/openbsd-inetd
lrwxrwxrwx 1 root root  15 Aug 17 14:54 K20saned -> ../init.d/saned
lrwxrwxrwx 1 root root  27 Aug 17 14:54 K20speech-dispatcher -> ../init.d/speech-dispatcher
-rw-r--r-- 1 root root 369 Apr 14  2012 README
lrwxrwxrwx 1 root root  19 Aug 17 14:54 S30killprocs -> ../init.d/killprocs
lrwxrwxrwx 1 root root  19 Aug 17 14:54 S70dns-clean -> ../init.d/dns-clean

यहां आप init.d (K15pulseaudio - & gt; ../init.d/pulseaudio) का प्रतीकात्मक लिंक देख सकते हैं।

लेकिन यहां हर सेवा init.d से जुड़ी है, है ना? लेकिन हर सेवा शुरू नहीं होगी; कारण दो स्क्रिप्ट है।

पहले वाला एक है एस स्क्रिप्ट (S30killprocs) --- & gt; शुरु

दूसरा एक है कश्मीर स्क्रिप्ट (K15pulseaudio) --- & gt; हत्या

सभी K स्क्रिप्ट सेवाएँ सेवाओं को मार देती हैं और सभी S स्क्रिप्ट सेवाएँ उस रनलेवल के लिए सेवाएँ शुरू कर देती हैं।

संक्षेप में

S70dns-clean -> ../init.d/dns-clean शुरु dns-clean रनलेवल 1 में सेवा।

K15pulseaudio -> ../init.d/pulseaudio मारता pulseaudio रनलेवल 1 में सेवा।


2

आप sysv-rc-conf स्थापित कर सकते हैं जो आरसी स्तरों को रेखांकन / कॉन्फ़िगर करने के लिए एक ncurses प्रोग्राम है।


0

क्या सभी ऑटोस्टार्ट सेवाओं की सूची दिखाने के लिए एक कमांड है?

इधर देखो: अद्यतन-rc-डी-धोखा पत्र

क्या यह जांचने के लिए कोई आदेश है कि क्या किसी सेवा को बूट समय पर ऑटोस्टार्ट किया गया है या नहीं?

कोई नहीं, मुझे पता है (जिसका कोई मतलब नहीं है;), लेकिन आप यहां पढ़ना शुरू कर सकते हैं: Askubuntu मंच - सेवा निर्भरता

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