Systemctl से सभी सक्षम सेवाओं को कैसे सूचीबद्ध करें?


279

मैं सभी enabledसेवाओं को कैसे सूचीबद्ध कर सकता हूं systemctl?

मुझे पता है systemctlकि स्वयं से चलने वाली कमांड सभी सेवाओं को सूचीबद्ध करती है, लेकिन मैं केवल enabledलोगों को प्राप्त करना चाहूंगा ।


आप सक्षम से क्या मतलब है? आप सेवाओं का मतलब है कि चल रहे हैं?
जनरल

7
@ एक सेवा को सक्षम करना इसे शुरू करने से काफी अलग है। देख लो man systemctl
जोस

चित्त आकर्षण करनेवाला। सबसे कम मूल्यांकन किया गया उत्तर सबसे "सही" उत्तर है, भले ही यह स्पष्ट रूप से सबसे अच्छा उत्तर न हो। यह उत्कृष्ट प्रश्न (और इसके उत्तर) यूनीक्स एंड कंपनी के लंबे समय से स्थायी (और शानदार) डिजाइन सिद्धांतों का उल्लंघन कैसे करते हैं, इसका एक दिलचस्प उदाहरण @FelipeAlvarez शिकायत करता है कि सबसे अधिक स्वीकार किए गए उत्तर मानता है कि सिस्टम यूनिक्स डिजाइन फिलोसोपी का अनुसरण करता है, लेकिन सिस्टमड / systemctl वही कर सकता है जो वह चाहता है (अधिकांश अनुभवी उपयोगकर्ता बस उस पूर्ण ब्लोट पर विचार करेंगे)। मैं और अधिक स्पष्ट रूप से देखना शुरू कर देता हूं कि लिनुस टॉर्वाल्ड्स क्यों प्रणालीगत रूप से बहुत महत्वपूर्ण है।
BISI

जवाबों:


411

systemctl list-unit-files | grep enabledसभी सक्षम लोगों को सूचीबद्ध करेगा ।

यदि आप चाहते हैं कि कौन से लोग वर्तमान में चल रहे हैं , तो आपको आवश्यकता है systemctl | grep running

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

सक्षम का अर्थ है कि सिस्टम अगले बूट पर सेवा चलाएगा। इसलिए यदि आप एक सेवा को सक्षम करते हैं, तो आपको अभी भी इसे मैन्युअल रूप से शुरू करने या रिबूट करने की आवश्यकता है और यह शुरू हो जाएगा।

रनिंग का मतलब है कि यह वास्तव में अभी चल रहा है, लेकिन अगर यह सक्षम नहीं है, तो जब आप रिबूट करते हैं तो यह पुनरारंभ नहीं होगा।


5
इस महत्वपूर्ण जानकारी को दिखाने के लिए किसी बाहरी उपकरण (grep) का उपयोग करना कष्टप्रद है। लेकिन हमें रास्ता दिखाने के लिए धन्यवाद :)
फेलिप अल्वारेज़

34
@FelipeAlvarez सही। लेकिन यह है कि लिनक्स कैसे काम करता है। कई छोटे बायनेरिज़ जो एक दूसरे के साथ अच्छी तरह से काम करते हैं। systemctl वही करता है जो पूछा जाता है, यह सेवाओं को सूचीबद्ध करता है। कोई फ़िल्टरिंग कमांड बिल्ट-इन सिस्टमक्टेल नहीं है क्योंकि grep पहले से मौजूद है और किसी भी प्रोग्राम के आउटपुट के साथ ऐसा कर सकता है। यह हमेशा कैसा रहा है :)
डोरियन

3
मैं सहमत हूं और इसलिए यह होना चाहिए। लेकिन, systemd पहले से ही SO इतना करने की कोशिश करता है कि मुझे आश्चर्य है कि यह सक्षम सेवाओं को सूचीबद्ध क्यों नहीं कर सकता है?
फेलिप अल्वारेज़

5
systemctl | grep runningमुझे कुछ भी मत बताओ! यहां तक ​​कि अगर कुछ चल रहा है तो केवल उसकी स्थिति के लिए सूचीबद्ध है जैसे:enabled, disabled, masked, static
Cirelli94

27
सरल:systemctl list-unit-files --state=running
होगा

93

man systemctl कहा गया है:

--state=

तर्क इकाई की एक अल्पविराम से अलग किए होना चाहिए LOAD, SUBया ACTIVEराज्यों। इकाइयों को सूचीबद्ध करते समय, केवल उन निर्दिष्ट राज्यों को दिखाएं। --state=failedकेवल विफल इकाइयों को दिखाने के लिए उपयोग करें ।

स्पष्टीकरण:

LOAD: दर्शाती है कि क्या यूनिट की परिभाषा ठीक से भरी हुई थी।
ACTIVE: उच्च-स्तरीय इकाई सक्रियण अवस्था, अर्थात सामान्यीकरण SUB
SUB: निम्न-स्तरीय इकाई सक्रियण अवस्था, मान इकाई प्रकार पर निर्भर करते हैं।

यद्यपि आप इसका उपयोग केवल enabledइकाइयों को दिखाने के लिए कर सकते हैं :

systemctl list-unit-files --state=enabled

यदि एक इकाई है enabledइसका मतलब है कि सिस्टम इसे स्टार्टअप पर शुरू करेगा। हालांकि enabledवास्तव में यह भी कुछ करने के लिए सेट नहीं startहै, इसलिए आपको इसे मैन्युअल रूप से करने की आवश्यकता होगी, या इसे सेट करने के बाद सिस्टम को रिबूट करें enabled


5
एक ही समय में सक्षम और शुरू करने के लिए:systemctl enable --now ...
औरेलीन ओम्स

1
--state=enabledसिस्टमड संस्करण 215 (रस्पियन 8 जेसी पर) पर कोई प्रभाव नहीं पड़ता है, लेकिन यह सिस्टमड संस्करण 229 (उबंटू 16.04.03 एक्सनियल पर) पर काम करता है।
एमपीबी

@mpb: लेकिन अभी तक यह आर्क लिनक्स पर संस्करण 235 पर पूरी तरह से ठीक काम करता है।

64

सभी सूचीबद्ध करने के लिए systemdसेवा है जो कर रहे हैं state=activeऔरsub=running

systemctl list-units --type=service --state=running

उन सभी systemdसीरों को सूचीबद्ध करने के लिए जो state=activeउप और उप में चल रहे हैं या बाहर हैं

systemctl list-units --type=service --state=active

12

इन सहित 'सक्षम' सेवाओं को देखने के लिए जो अभी भी ऊपर / नीचे चल रहे हैं:

systemctl list-unit-files --type service --state enabled,generated

वर्तमान में चल रही सभी सेवाओं को देखने के लिए देखें:

systemctl list-units --type service --state running

दुर्भाग्य से सेवाओं के नाम दो सूचियों में भिन्न हो सकते हैं - जैसे sshdबनाम sshऔर syslogबनाम rsyslog
ऑरेंजडॉग

एकमात्र "गैर ग्रीप" सही उत्तर। हालांकि यह सुनिश्चित नहीं है कि अपस्टार्ट का उल्लेख क्यों किया गया है ...
रॉगरडपैक

2

सभी सक्रिय और विफल सेवाओं का अवलोकन:

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