systemctl सेवा सूची की व्याख्या: Linux सेवाओं को कैसे देखें, प्रबंधित करें और समस्या निवारण करें

目次

1. परिचय

Linux का उपयोग करते समय, कई स्थितियाँ होती हैं जहाँ आप सेवाओं की स्थिति जांचना चाहते हैं या चल रही प्रक्रियाओं की सूची देखना चाहते हैं। ऐसे मामलों में, systemctl कमांड अत्यंत उपयोगी है।

यह कमांड systemd के साथ काम करता है, जो आधुनिक Linux वितरणों में उपयोग किया जाने वाला स्टार्टअप सिस्टम और सेवा प्रबंधक है। यह सेवा (यूनिट) की स्थिति जांचना, सेवाओं को शुरू करना, रोकना, पुनः शुरू करना, और सेवा सूचियों को प्रदर्शित करना सहित कई कार्य प्रदान करता है।

“systemctl सेवा सूची” के दृष्टिकोण से, आप न केवल वर्तमान में सक्रिय सेवाओं को देख सकते हैं बल्कि निष्क्रिय सेवाओं और स्वचालित स्टार्टअप के लिए कॉन्फ़िगर की गई सेवाओं को भी देख सकते हैं, जिससे आप कई पहलुओं से समग्र सिस्टम कॉन्फ़िगरेशन को समझ सकते हैं।

यह अध्याय संक्षेप में बताता है कि systemctl क्या है और इस लेख में आप क्या सीखेंगे, इसका सार प्रस्तुत करता है।

systemctl क्या है?

systemctl systemd-आधारित Linux वितरणों पर सेवाओं, टार्गेट्स और माउंट पॉइंट्स जैसे विभिन्न “यूनिट्स” को नियंत्रित करने और निरीक्षण करने के लिए मानक उपकरण है।

उदाहरण के लिए, इसका उपयोग Apache (httpd) और SSH जैसी सेवाओं को शुरू या रोकने, तथा उनकी स्थिति को सूची रूप में प्रदर्शित करने के लिए किया जाता है।

systemd और systemctl के बीच संबंध

systemd Linux स्टार्टअप प्रक्रियाओं और सेवा प्रबंधन के लिए मुख्य तंत्र है, जो SysVinit और Upstart जैसे पुराने सिस्टमों की जगह लेता है। systemd के साथ इंटरैक्ट करने के लिए उपयोग किया जाने वाला कमांड-लाइन टूल systemctl है।

दूसरे शब्दों में, यदि systemd कमांड सेंटर है, तो systemctl वह ऑपरेटर है जो निर्देश जारी करता है।

इस लेख में आप क्या सीखेंगे

यह लेख निम्नलिखित प्रश्नों के उत्तर देता है:

  • आप वर्तमान में चल रही सेवाओं की सूची कैसे देख सकते हैं?
  • आप सभी सेवाओं को, जिसमें निष्क्रिय सेवाएँ भी शामिल हैं, कैसे प्रदर्शित करेंगे?
  • आप यह कैसे जांच सकते हैं कि कोई सेवा बूट पर स्वचालित रूप से शुरू होती है या नहीं?
  • सेवा सूचियों के आउटपुट की व्याख्या आप कैसे करेंगे?

Linux शुरुआती लोगों के लिए स्पष्टता सुनिश्चित करने हेतु, कमांड उदाहरण और आउटपुट की व्याख्याएँ विस्तृत रूप से प्रदान की गई हैं।

2. systemctl के साथ सेवाओं की सूची कैसे प्रदर्शित करें

Linux सिस्टम प्रशासन में, सेवाओं की सूची को शीघ्रता से समझना अत्यंत महत्वपूर्ण है। systemctl कमांड का उपयोग करके, आप सक्रिय सेवाओं, निष्क्रिय सेवाओं और स्टार्टअप कॉन्फ़िगरेशन सेटिंग्स को आसानी से जांच सकते हैं।

यह अनुभाग निम्नलिखित तीन दृष्टिकोणों से सेवा सूची विधियों को समझाता है:

  • सक्रिय सेवाओं की सूची
  • सभी सेवाओं की सूची (निष्क्रिय सेवाओं सहित)
  • सेवा यूनिट फ़ाइलों की सूची (स्टार्टअप सेटिंग्स सहित)

2.1 वर्तमान में सक्रिय सेवाओं की सूची प्रदर्शित करना

वर्तमान में चल रही सेवाओं को जांचने के लिए, निम्नलिखित कमांड का उपयोग करें:

systemctl list-units --type=service

यह कमांड सक्रिय सेवाओं की सूची प्रदर्शित करता है। आउटपुट में निम्नलिखित फ़ील्ड शामिल हैं:

FieldDescription
UNITService name (e.g., ssh.service)
LOADWhether the unit file is loaded
ACTIVEService state (e.g., active, inactive, failed)
SUBMore detailed status (e.g., running, exited, dead)
DESCRIPTIONService description

यह जानकारी आपको यह निर्धारित करने में मदद करती है, उदाहरण के लिए, कि nginx चल रहा है या कौन सी सेवाएँ वर्तमान में सक्रिय हैं।

2.2 निष्क्रिय सेवाओं सहित सभी सेवाओं को प्रदर्शित करना

डिफ़ॉल्ट रूप से, list-units केवल सक्रिय सेवाएँ दिखाता है। निष्क्रिय सेवाओं को शामिल करने के लिए, --all विकल्प जोड़ें।

systemctl list-units --type=service --all

यह निष्क्रिय सेवाओं और उन सेवाओं को प्रदर्शित करता है जो कभी शुरू नहीं हुईं।

आप --state= विकल्प का उपयोग करके सेवा स्थिति के आधार पर परिणामों को और फ़िल्टर कर सकते हैं:

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

यह तब उपयोगी होता है जब आप केवल बंद सेवाओं को देखना चाहते हैं।

2.3 सेवा यूनिट फ़ाइलों की सूची देखना

बूट पर कौन सी सेवाएँ सक्षम या अक्षम हैं, यह जांचने के लिए, निम्नलिखित कमांड का उपयोग करें:

systemctl list-unit-files --type=service

यह कमांड सभी सेवा यूनिट फ़ाइलों को उनके सक्षम या अक्षम स्थितियों के साथ प्रदर्शित करता है।

STATEDescription
enabledAutomatically starts at boot
disabledDoes not start automatically
staticCannot be enabled or disabled manually
maskedExplicitly disabled and cannot be started

यह सूची आपको दृश्य रूप से समझने में मदद करती है कि कौन सी सेवाएँ बूट पर शुरू होती हैं और गलती से मास्क की गई सेवाओं की पहचान करती है।

3. systemctl के साथ बुनियादी सेवा प्रबंधन

systemctl कमांड आपको सेवाओं को शुरू, रोक, पुनः शुरू करने और स्टार्टअप व्यवहार को कॉन्फ़िगर करने की अनुमति देता है।

3.1 सेवा शुरू करना

sudo systemctl start service-name

उदाहरण:

sudo systemctl start httpd.service

3.2 सेवा को रोकना

sudo systemctl stop service-name

उदाहरण:

sudo systemctl stop sshd.service

3.3 सेवा को पुनः आरंभ करना

sudo systemctl restart service-name

उदाहरण:

sudo systemctl restart nginx.service

3.4 सेवा की स्थिति की जाँच करना

systemctl status service-name

उदाहरण:

systemctl status mysql.service

3.5 स्वचालित प्रारंभ को सक्षम करना

sudo systemctl enable service-name

उदाहरण:

sudo systemctl enable docker.service

3.6 स्वचालित प्रारंभ को अक्षम करना

sudo systemctl disable service-name

उदाहरण:

sudo systemctl disable cups.service

3.7 प्रारंभ स्थिति की जाँच करना

systemctl is-enabled service-name
enabled

4. उपयोगी systemctl विकल्प और उन्नत तकनीकें

4.1 सेवा निर्भरताओं को सूचीबद्ध करना

systemctl list-dependencies service-name

4.2 यूनिट फ़ाइल सामग्री देखना

systemctl cat service-name

4.3 यूनिट फ़ाइलों को पुनः लोड करना

sudo systemctl daemon-reexec
sudo systemctl daemon-reload

4.4 सेवा लॉग देखना

journalctl -u service-name

5. सामान्य समस्याएँ और समस्या निवारण

5.1 जब सेवा प्रारंभ करने में विफल हो

systemctl status service-name
journalctl -xe

5.2 status आउटपुट में त्रुटि संदेशों को समझना

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
   Active: failed (Result: exit-code)

5.3 वे सेवाएँ जो प्रारंभ करने के तुरंत बाद रुक जाती हैं

  • कॉन्फ़िगरेशन त्रुटियाँ
  • पोर्ट संघर्ष
  • लापता फ़ाइलें या निर्देशिकाएँ
  • अपर्याप्त अनुमतियाँ

5.4 जब सेवा मास्क्ड हो

sudo systemctl unmask service-name

6. सारांश

सेवा प्रबंधन लिनक्स सिस्टम संचालन का एक आवश्यक हिस्सा है, और systemctl सिस्टम सेवाओं को नियंत्रित करने और समझने में केंद्रीय भूमिका निभाता है।

7. अक्सर पूछे जाने वाले प्रश्न (सामान्य प्रश्न)

यह खंड systemctl और सेवा प्रबंधन के बारे में सामान्य प्रश्नों के उत्तर देता है।

प्रश्न 1. systemctl और service कमांड के बीच क्या अंतर है?

उत्तर 1.
systemctl systemd-आधारित सिस्टम के लिए डिज़ाइन किया गया सेवा प्रबंधन कमांड है और यह आधुनिक लिनक्स वितरणों जैसे Ubuntu, CentOS, और Fedora द्वारा उपयोग किया जाने वाला मानक उपकरण है।
इसके विपरीत, service कमांड पुराने SysVinit-आधारित सिस्टम के साथ उपयोग की जाती थी। जबकि यह संगतता कारणों से अभी भी मौजूद हो सकती है, systemd वातावरण में systemctl का उपयोग दृढ़ता से अनुशंसित है।

प्रश्न 2. list-units और list-unit-files के बीच क्या अंतर है?

उत्तर 2.

  • list-units वर्तमान में लोड की गई यूनिटों को प्रदर्शित करता है, अर्थात् वे सेवाएँ जो चल रही हैं या हाल ही में उपयोग की गई हैं।
  • list-unit-files सभी यूनिट फ़ाइलों और उनकी सक्षमता स्थिति (सक्षम, अक्षम, आदि) को प्रदर्शित करता है। संक्षेप में, एक वर्तमान में सक्रिय क्या दिखाता है, जबकि दूसरा सेवाओं को कैसे कॉन्फ़िगर किया गया है, दिखाता है।

प्रश्न 3. क्या स्थिर अवस्था में सेवाओं को प्रारंभ किया जा सकता है?

उत्तर 3.
हाँ, static अवस्था में सेवाओं को start का उपयोग करके मैन्युअल रूप से प्रारंभ किया जा सकता है। हालांकि, उन्हें बूट पर स्वचालित प्रारंभ के लिए सक्षम नहीं किया जा सकता।
यह इसलिए है क्योंकि स्थिर सेवाएँ अन्य यूनिटों की निर्भरताओं के रूप में प्रारंभ करने के लिए डिज़ाइन की गई हैं।

प्रश्न 4. एक सेवा मास्क्ड है और प्रारंभ नहीं हो सकती। मुझे क्या करना चाहिए?

उत्तर 4.
एक masked सेवा पूरी तरह से अक्षम है और प्रारंभ नहीं हो सकती। इसे हल करने के लिए, निम्नलिखित कमांड का उपयोग करके सेवा को अनमास्क करें:

sudo systemctl unmask service-name

अनमास्क करने के बाद, आप सेवा को सामान्य रूप से प्रारंभ कर सकते हैं।

प्रश्न 5. सेवा की स्थिति देखने के लिए कोई GUI विधि है?

A5.
वितरण के आधार पर, gnome-system-monitor, KSysGuard, या Cockpit जैसे टूल आपको ग्राफिकल इंटरफ़ेस के माध्यम से सेवा की स्थिति देखने की अनुमति देते हैं।
हालाँकि, बूट पर सेवाओं को सक्षम या अक्षम करने जैसे उन्नत कार्यों के लिए, systemctl अभी भी सबसे भरोसेमंद विधि है।

Q6. कस्टम यूनिट फ़ाइलें मुझे कहाँ रखनी चाहिए?

A6.
कस्टम यूनिट फ़ाइलें सामान्यतः /etc/systemd/system/ में रखी जाती हैं। यूनिट फ़ाइल को संपादित या जोड़ने के बाद, हमेशा निम्न कमांड चलाएँ:

sudo systemctl daemon-reload

आप फिर सामान्य रूप से start या enable का उपयोग करके सेवा को प्रबंधित कर सकते हैं।