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

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

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

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

रुके हुए Nginx डेमॉन को बैकग्राउंड में दोबारा चालू करने के लिए sudo systemctl start 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 आर्किटेक्चर पर आधारित लिनक्स और उबंटू सर्वरों को आत्मविश्वास से प्रबंधित करने में सक्षम बनाएगा।