परिचय और कार्यप्रणाली
डेबियन और उबंटू आधारित ऑपरेटिंग सिस्टमों में पैकेज इंस्टॉलेशन के दौरान बैकग्राउंड डेमन्स का प्रबंधन सामान्य एडमिनिस्ट्रेटिव कमांड्स की तुलना में कुछ अलग नियमों का पालन करता है। पैकेज मेंटेनेंस स्क्रिप्ट्स (maintscripts) के भीतर systemd यूनिट्स के इनेबल अथवा डिसेबल स्टेटस को सुव्यवस्थित रखने के लिए deb-systemd-helper एक महत्वपूर्ण बैकएंड यूटिलिटी के रूप में कार्य करता है। इस टूल का मुख्य उद्देश्य यह सुनिश्चित करना होता है कि पैकेज अपग्रेड या री-इंस्टॉलेशन के दौरान व्यवस्थापक द्वारा तय की गई सर्विस स्थिति सुरक्षित रहे। इस ट्यूटोरियल में हम एक डमी यूनिट फाइल तैयार करेंगे और व्यावहारिक रूप से enable, was-enabled, disable और purge जैसे आवश्यक ऑपरेशन्स को क्रियान्वित करके देखेंगे।
टूल की उपलब्धता और बुनियादी सहायता निर्देश
deb-systemd-helper उपयोगिता मुख्य रूप से init-system-helpers पैकेज का हिस्सा होती है। यदि सिस्टम में यह पैकेज पहले से मौजूद न हो, तो नीचे दिए गए कमांड से इसे इंस्टॉल किया जा सकता है:

बाइनरी फाइल के सही स्थान पर उपलब्ध होने की पुष्टि करने के लिए which कमांड का उपयोग करें, जो यह सत्यापित करता है कि एग्जीक्यूटेबल फाइल सिस्टम पाथ /usr/bin में स्थापित है:

इस कमांड के अंतर्गत उपलब्ध विकल्पों और संचालन दिशानिर्देशों को समझने के लिए सहायता स्क्रीन देखें। ध्यान रहे कि यह टूल सामान्य इंटरैक्टिव शेल के बजाय मुख्यतः डेबियन पैकेजिंग वर्कफ़्लो के लिए डिज़ाइन किया गया है, ताकि सिम्बोलिक लिंक्स को सुरक्षित व मानक तरीके से हैंडल किया जा सके।
⚙️ [प्रमुख कमांड और ऑप्शंस]
--quiet : सफल निष्पादन के दौरान अनावश्यक आउटपुट को रोककर केवल त्रुटियों को प्रदर्शित करता है।--force : यूनिट की स्थिति संबंधी विसंगति चेतावनियों को दरकिनार करते हुए प्रक्रिया जारी रखता है।enable : निर्दिष्ट सर्विस को बूट समय पर स्वचालित आरंभ के लिए सक्रिय करता है।disable : संबंधित सिम्बोलिक लिंक को हटाकर सर्विस को निष्क्रिय कर देता है।purge : सिस्टम में सुरक्षित की गई यूनिट की स्थिति ट्रैकिंग जानकारी को पूरी तरह मिटा देता है।mask : यूनिट को पूरी तरह ब्लॉक करता है जिससे इसे मैन्युअल या ऑटोमैटिक रूप से चलाना असंभव हो जाता है।unmask : मास्किंग हटाकर सर्विस को पुनः सामान्य नियंत्रण में लाता है।was-enabled : यह जांचता है कि संबंधित यूनिट पूर्व में सक्रिय स्थिति में कॉन्फ़िगर थी या नहीं।

परीक्षण सर्विस का निर्माण और उसे सक्रिय (Enable) करना
यूनिट फाइलों को व्यवस्थित रखने के लिए आवश्यक डायरेक्टरी पाथ की उपलब्धता सुनिश्चित करें। इसके लिए mkdir -p /lib/systemd/system कमांड निष्पादित करें:

अभ्यास के उद्देश्य से /lib/systemd/system/ के भीतर demo-helper.service नाम की एक साधारण ‘oneshot’ सर्विस फ़ाइल का निर्माण करते हैं:

अब deb-systemd-helper का उपयोग करके इस नई सर्विस को सक्रिय करते हैं। यह क्रिया पैकेज पॉलिसी के अनुरूप जरूरी स्टेट डेटा को पंजीकृत करती है और सिस्टम स्टार्टअप के लिए सिम्बोलिक लिंक स्थापित करती है:

लक्ष्य डायरेक्टरी में सिम्बोलिक लिंक के निर्माण की पुष्टि ls -la चलाकर की जा सकती है, जिससे यह स्पष्ट होता है कि सर्विस multi-user.target.wants के अंतर्गत सही ढंग से लिंक हो चुकी है:

सर्विस स्थिति की जांच और उसे निष्क्रिय (Disable) करना
सिस्टम में सर्विस की सक्रियता की स्थिति जानने के लिए was-enabled सब-कमांड चलाएं। यदि सर्विस सक्रिय है, तो यह सफल एग्जिट कोड लौटाएगा जिससे कंडीशनर मैसेज टर्मिनल पर प्रिंट होगा:

अब परीक्षण सर्विस को निष्क्रिय स्थिति में बदलने के लिए disable सब-कमांड का प्रयोग करें। इससे संबंधित टारगेट डायरेक्टरी से सिम्बोलिक लिंक सुरक्षित रूप से हटा दिया जाता है और स्टेट फाइल अपडेट हो जाती है:

सर्विस के डिसेबल होने की दोबारा पुष्टि करने के लिए वही कमांड लॉजिकल OR (||) ऑपरेटर के साथ चलाएं। चूंकि निष्क्रिय यूनिट गैर-शून्य रिटर्न कोड देती है, इसलिए दूसरा भाग निष्पादित होगा:

अंतिम सत्यापन के रूप में डायरेक्टरी लिस्टिंग की जांच करें कि क्या सिम्बोलिक लिंक वास्तव में हट चुका है। फाइल न मिलने का संदेश यह सिद्ध करता है कि निष्क्रिय करने की प्रक्रिया पूरी हो चुकी है:

स्टेट फाइलों का निष्कासन (Purge) और सिस्टम क्लीनअप
पैकेज को पूरी तरह अनइंस्टॉल करते समय उसकी सर्विस ट्रैकिंग जानकारियों को भी मिटाना आवश्यक होता है। इसके लिए purge सब-कमांड चलाकर सर्विस की आंतरिक स्थिति फाइलों को सिस्टम से स्वच्छ किया जाता है:

लैब के दौरान निर्मित की गई डमी सर्विस यूनिट फाइल को हटाने के लिए rm -f कमांड का प्रयोग करें:

यूनिट फाइल के हटाए जाने की जानकारी systemd मैनेजर की मेमोरी में तुरंत अपडेट करने के लिए डेमन रीलोड करें:

क्लीनअप प्रक्रिया के सफल समापन की पुष्टि करने के लिए कंसोल पर संदेश प्रिंट करें:

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