نظرة عامة
تعتمد توزيعات دبيان وأوبونتو على آلية ذكية لإدارة دورة حياة وحدات systemd عبر الحزم البرمجية دون تجاوز تفضيلات مسؤول النظام، وتُمثّل أداة deb-systemd-helper العمود الفقري لهذه العملية. يستعرض هذا الدليل التطبيقي كيفية ضبط الروابط الرمزية للخدمات والتحكم في تفعيلها، حيث سنقوم بإنشاء خدمة نموذجية واختبار أوامر enable وwas-enabled وdisable وصولاً إلى التطهير الكامل عبر purge لفهم هندسة إدارة الخدمات على مستوى الحزم.
تثبيت الأداة واستكشاف خيارات المساعدة الأساسية
تتوفر الأداة ضمن حزمة أدوات النظام الرسمية، لذا نبدأ بتحديث مستودعات التوزيعة وجلب حزمة init-system-helpers عبر مدير الحزم:

للتحقق من استقرار الملف التنفيذي في المسار القياسي للنظام، نتحقق من وجود deb-systemd-helper داخل الدليل /usr/bin:

عند استدعاء شاشة الإرشادات الخاصة بالأمر، تظهر التعليمات الموجهة في المقام الأول لسكربتات صيانة الحزم (dpkg maintscripts). تكمن الغاية الأساسية لهذه الأداة في منح مطوري الحزم وسيلة مرنة للتعامل مع روابط systemd أثناء مراحل التثبيت والترقية، مع مراعاة بيئات التثبيت المصغرة وتجنب الكتابة فوق القرارات اليدوية التي اتخذها مدير النظام.
⚙️ [أبرز الخيارات والوظائف المدعومة]
--quiet : كتم رسائل التنفيذ القياسية واقتصار المخرجات على تنبيهات الأخطاء فقط.--force : تجاهل حالات عدم التطابق في سجلات الحالة ومتابعة الإجراء إجبارياً.enable : إنشاء الروابط الرمزية للوحدة لجدولة تشغيلها تلقائياً مع إقلاع النظام.disable : إزالة الروابط التشغيلية لتعطيل البدء التلقائي للخدمة.purge : محو كافة ملفات التتبع وسجلات الحالة المرتبطة بالخدمة من النظام جذرياً.mask : حجب الوحدة بالكامل وربطها بملف فارغ لمنع إطلاقها يدوياً أو آلياً.unmask : رفع الحجب عن الوحدة لاستعادة إمكانية تفعيلها وتشغيلها المعتاد.was-enabled : استعلام تقني يحدد ما إذا كانت الوحدة مفعّلة في السجلات السابقة.

إعداد وحدة خدمة تجريبية وتفعيلها على النظام
نشرع في تهيئة الدليل المخصص لاحتضان ملفات تعريف الخدمات العامة عبر الأمر mkdir -p /lib/systemd/system:

نقوم بإنشاء ملف خدمة تجريبي باسم demo-helper.service داخل /lib/systemd/system/ بحيث يُنفّذ أمراً آنياً ينتهي بنجاح بمجرد الوصول إلى الهدف متعدد المستخدمين:

لتفعيل الخدمة وفق القواعد التنظيمية لدبيان، نُنفّذ الأمر deb-systemd-helper enable demo-helper.service. يتولى الأمر ربط الخدمة بالهدف المناسب مع تدوين حالتها في قاعدة التتبع المحلية:

يُمكننا التأكد من نجاح العملية من خلال فحص مسار الروابط الرمزية في /etc/systemd/system/multi-user.target.wants/ والتأكد من توجيهه نحو ملف الخدمة الجديد:

فحص الحالة التشغيلية للخدمة وتعطيلها عملياً
للتحقق البرمجي من جاهزية الخدمة وفعاليتها، ندمج فحص الحالة مع طباعة تأكيدية باستخدام deb-systemd-helper was-enabled demo-helper.service && echo "Service is enabled":

عند الرغبة في إيقاف البدء التلقائي، يُطبّق الأمر deb-systemd-helper disable demo-helper.service لفك الروابط المرتبطة بالهدف وإيقاف انطلاق الخدمة أثناء الإقلاع مع تحديث سجلات التتبع:

لإثبات التعطيل، نعتمد على بنية الشرط البديل عبر المعامل المنطقي (||)؛ حيث يُرجع الاستعلام رمز خطأ عند تعطيل الخدمة، مما يؤدي لطباعة رسالة التوقف عبر deb-systemd-helper was-enabled demo-helper.service || echo "Service is disabled":

نُجري فحصاً نهائياً لمجلد الأهداف عبر ls -la /etc/systemd/system/multi-user.target.wants/demo-helper.service 2>&1 || true للتأكد الحسي من زوال الرابط الرمزي بالكامل:

التطهير الكامل لسجلات الحالة وإزالة مخلفات التجربة
لإزالة أية آثار متبقية لسجلات تتبع الخدمة من النظام وتصفير سجلاتها، يُستخدم خيار التطهير المباشر deb-systemd-helper purge demo-helper.service:

بعد استعادة نظافة السجلات، نتخلص من ملف الوحدة التجريبي الذي أنشأناه في مستهل التدريب باستخدام rm -f /lib/systemd/system/demo-helper.service:

كي يتعرف مدير النظام systemd على التغييرات فوراً ويُفرغ ذاكرته المؤقتة من الوحدة المحذوفة، نقوم بإعادة تحميل الإعدادات عبر systemctl daemon-reload:

نختم الإجراء بطباعة إشعار انتهاء التنظيف للتأكد من إتمام كافة الخطوات بنجاح عبر echo "Cleanup completed successfully":

قدم هذا الدليل نظرة تطبيقية شاملة على أداة deb-systemd-helper ودورها الحاسم في إدارة خدمات systemd ضمن بيئات دبيان وأوبونتو، مما يُمكّن مهندسي النظم ومطوري الحزم من بناء سكربتات تثبيت متوافقة تماماً مع معايير التوزيعة.