Linux systemctl कमांड प्रैक्टिकल गाइड

अवलोकन

जटिल और लंबे मैन्युअल (man pages) में उलझे बिना, रोज़मर्रा के सिस्टम एडमिनिस्ट्रेशन में काम आने वाली systemctl कमांड्स को यहाँ व्यावहारिक उदाहरणों के साथ समझाया गया है। एक वास्तविक वेब सर्वर को परिनियोजित (deploy) करके, उसे शुरू करने, रोकने, उसकी कार्यप्रणाली जांचने और ओएस बूट के समय स्वचालित रूप से सक्रिय करने का संपूर्ण वर्कफ़्लो आप इस गाइड से सीख सकते हैं।

टेस्ट एनवायरनमेंट तैयार करना और सर्विस स्टेटस की पड़ताल (status)

systemctl की कार्यप्रणाली को सीधे परखने के लिए, हम परीक्षण के तौर पर लोकप्रिय nginx वेब सर्वर पैकेज को अपने सिस्टम पर इंस्टॉल करते हैं।

उबंटू रिपॉजिटरी अपडेट करके Nginx वेब सर्वर इंस्टॉल करना

किसी भी बैकग्राउंड डेमॉन की कार्यशील स्थिति, रनटाइम एरर और प्रोसेस आईडी (PID) की जानकारी हासिल करने के लिए systemctl status सबसे प्राथमिक टूल है।
टर्मिनल आउटपुट को देखने पर स्पष्ट होता है कि Nginx सर्विस रीबूट पर शुरू होने के लिए कॉन्फ़िगर (enabled) तो है, परंतु वर्तमान समय में यह निष्क्रिय यानी बंद (inactive) पड़ी है।
⚙️ [महत्वपूर्ण कमांड विकल्प]

-l (--full) : यदि टर्मिनल विंडो की चौड़ाई कम हो, तो भी यह लॉग्स और यूनिट डिस्क्रिप्शन को ट्रंकेट (काटने) करने के बजाय पूरी विस्तृत लाइन दिखाता है।
--no-pager : कंसोल आउटपुट को less जैसे इंटरैक्टिव पेजर में भेजने के बजाय सीधे स्टैंडर्ड आउटपुट पर फ्लश कर देता है।
-t (--type) : यह केवल चयनित यूनिट श्रेणियों (जैसे service, socket, mount) के अनुसार परिणामों को फ़िल्टर करता है।
-a (--all) : मेमोरी में लोड और अनलोड दोनों प्रकार की सभी सिस्टम यूनिट्स की पूरी सूची तैयार करता है।
--failed : सिस्टम में क्रैश हुई या त्रुटिपूर्ण स्थिति में फंसी यूनिट्स को तुरंत पहचानने में मदद करता है।

Nginx सर्विस की वर्तमान रनिंग स्थिति देखना

सर्विस का जीवनचक्र नियंत्रण: शुरू करना, बंद करना और रीस्टार्ट (start, stop, restart)

सक्रिय Nginx प्रक्रिया को तुरंत समाप्त करने के लिए sudo systemctl stop nginx कमांड चलाई जाती है।
सिस्टम-स्तरीय डेमॉन को नियंत्रित करने के लिए रूट अनुमतियों की आवश्यकता होती है, इसलिए sudo अनिवार्य है; प्रक्रिया सफलतापूर्वक बंद होने पर बैश प्रॉम्प्ट बिना किसी अतिरिक्त चेतावनी के वापस आ जाता है।

चल रही Nginx सर्विस को सुरक्षित रूप से रोकना

लंबे आउटपुट को पढ़े बिना यदि केवल एक शब्द में यह जानना हो कि सर्विस चल रही है या नहीं, तो systemctl is-active nginx सबसे उपयुक्त विकल्प है।
चूंकि सर्विस को पिछले चरण में रोका गया था, इसलिए टर्मिनल पर साफ़ तौर पर inactive प्रदर्शित होता है।

सर्विस के एक्टिव या इनएक्टिव होने की त्वरित जांच

रुके हुए Nginx डेमॉन को बैकग्राउंड में दोबारा चालू करने के लिए sudo systemctl start nginx का उपयोग किया जाता है।
पर्याप्त विशेषाधिकारों के साथ निष्पादित होने पर, बिना किसी एरर लॉग के प्रक्रिया पृष्ठभूमि में कार्यभार संभाल लेती है।

Nginx सर्विस को बैकग्राउंड में चालू करना

जब भी वेब सर्वर के कॉन्फ़िगरेशन फ़ाइलों में संशोधन किया जाए या मेमोरी रीफ़्रेश करनी हो, तब sudo systemctl restart nginx के माध्यम से प्रोसेस को शटडाउन करके तुरंत नया इंस्टेंस स्पिन-अप किया जाता है।

कॉन्फ़िगरेशन अपडेट लागू करने के लिए सर्विस रीस्टार्ट करना

रीस्टार्ट के बाद प्रोसेस के सही ढंग से उठने की पुष्टि systemctl is-active nginx चलाकर की जा सकती है।
सर्विस बिना किसी अड़चन के निष्पादित हो रही है, जिसका प्रमाण कंसोल पर लौटाया गया active रिस्पॉन्स है।

रीस्टार्ट के बाद सर्विस का रनिंग स्टेटस सत्यापित करना

बूट-टाइम ऑटो-स्टार्ट को सक्षम और अक्षम करना (enable, disable)

सर्वर के रीबूट होने पर सेवाओं को मानवीय हस्तक्षेप के बिना स्वतः चालू रखने के लिए sudo systemctl enable nginx निर्देश दिया जाता है।
systemd पृष्ठभूमि में /etc/systemd/system/ डायरेक्टरी के अंतर्गत लक्षित यूनिट फ़ाइल के लिए एक सिम्बॉलिक लिंक (symlink) जनरेट करता है, जो स्टार्टअप ट्रिगर का काम करता है।

सिस्टम बूट पर सर्विस का स्वचालित शुभारंभ सक्षम करना

क्या कोई सर्विस स्टार्टअप सीक्वेंस का हिस्सा बनी है या नहीं, इसे systemctl is-enabled nginx कमांड की मदद से परखा जाता है।
लिंक सफलतापूर्वक स्थापित हो जाने के कारण यह कमांड टर्मिनल पर enabled की पुष्टि करती है।

बूट-अप ऑटोस्टार्ट स्थिति की जांच

यदि आप चाहते हैं कि मशीन चालू होते ही Nginx अपने आप मेमोरी लोड न करे, तो sudo systemctl disable nginx कमांड लागू करें।
यह ऑपरेशन स्टार्टअप टारगेट डायरेक्टरी से पहले बनाए गए सिम्बॉलिक लिंक को मिटाकर ऑटोमेशन चक्र को तोड़ देता है।

बूट के समय सर्विस का स्वतः चालू होना बंद करना

निष्क्रियता की पुष्टि हेतु दोबारा systemctl is-enabled nginx चलाएं।
हटाए गए लिंक के फलस्वरूप अब आउटपुट में disabled दिखाई देगा, जो यह दर्शाता है कि अब यह सर्विस केवल मैन्युअल कमांड से ही शुरू हो सकेगी।

ऑटोस्टार्ट अक्षम होने की पुष्टि

उत्पादन वातावरण (production environment) में निरंतरता बनाए रखने के लिए, हम sudo systemctl enable nginx द्वारा ऑटो-स्टार्ट को पुनः बहाल कर देते हैं।
हटाया गया सिम्बॉलिक लिंक फिर से बन जाता है, जिससे आगामी सिस्टम रीबूट पर Nginx स्वतः सुचारु रूप से उठ जाएगा।

आगामी रीबूट्स के लिए ऑटो-स्टार्ट पुनः सक्रिय करना

सक्रिय सर्विस यूनिट्स की लिस्टिंग और सिस्टम एरर डिटेक्शन (list-units, failed)

systemctl list-units --type=service --state=running --no-pager | head -n 15 कमांड पूरे ऑपरेटिंग सिस्टम में वर्तमान में सक्रिय (running) सेवाओं को छानकर शीर्ष 15 प्रविष्टियों को प्रस्तुत करती है।
इस परिणाम सूची से हम देख सकते हैं कि nginx.service के साथ-साथ सिस्टम के अन्य अनिवार्य डेमॉन बैकग्राउंड में सामान्य रूप से कार्य कर रहे हैं।

वर्तमान में चल रही मुख्य सिस्टम सर्विसेज की फ़िल्टर्ड सूची

सर्वर की सेहत और स्थिरता जांचने के लिए systemctl --failed --no-pager अत्यंत उपयोगी है, क्योंकि यह केवल उन सर्विसेज को अलग निकालती है जो बूट के समय क्रैश हो गईं या रुक गईं।
यहाँ 0 loaded units listed संदेश यह सुनिश्चित करता है कि सिस्टम में कोई भी टूटी हुई सर्विस मौजूद नहीं है और पूरा ढांचा पूरी तरह स्वस्थ है।

विफल या क्रैश हुई सर्विसेज की स्थिति की जांच

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