نظرة عامة
عوضاً عن التيه في تفاصيل صفحات التوثيق الطويلة (man pages)، يقدم هذا المقال دليلاً تطبيقياً مباشراً يركز على السيناريوهات الواقعية التي يحتاجها كل مدير نظام للتعامل مع أداة systemctl. سنعتمد في شرحنا على خادم الويب Nginx كنموذج تطبيقي؛ حيث سنبدأ بتثبيته، ثم نتدرج في فحص حالته، والتحكم في تشغيله وإيقافه، وصولاً إلى إعداده للعمل تلقائياً فور إقلاع النظام.
تهيئة بيئة العمل واستكشاف حالة الخدمة (status)
نبدأ أولاً بتجهيز بيئة الاختبار عبر تثبيت حزمة خادم الويب nginx على النظام:

تُستخدم التعليمة systemctl status لتشخيص وضع الخدمة المستهدفة، وعرض مؤشرات أدائها، وحالة العمليات المرتبطة بها في الوقت الفعلي.
توضح المخرجات أدناه أن خادم Nginx مُهيأ ليبدأ ذاتياً عند إقلاع النظام (enabled)، إلا أن الخدمة متوقفة في الوقت الحالي (inactive).
⚙️ [أهم المعاملات والخيارات الإضافية]
-l (أو --full): تمنع تقليص الأسطر وتُظهر سجلات الأحداث ووصف الوحدات كاملاً دون اقتطاع بناءً على أبعاد نافذة الطرفية.--no-pager): تعرض النتائج مباشرة على شاشة الطرفية بدلاً من تحويل المخرجات تلقائياً إلى برامج التصفح مثل less.-t (أو --type): تتيح فرز النتائج حسب تصنيف الوحدة، مثل حصر العرض في الخدمات (service)، أو المقابس (socket)، أو نقاط التوصيل (mount).-a (أو --all): تدرج كافة الوحدات الخاضعة لإشراف systemd حتى لو كانت غير محملة أو غير مفعلة.--failed: تقتصر على عرض الوحدات المتعثرة التي واجهت أخطاء أثناء التشغيل أو الانهيار.

التحكم الفعلي بالخدمات: التشغيل، الإيقاف، وإعادة التحميل (start, stop, restart)
لإيقاف خادم Nginx فوراً، نلجأ إلى تشغيل الأمر sudo systemctl stop nginx.
نظراً لأن إدارة الخدمات تتطلب امتيازات إدارية، فإن استخدام sudo إلزامي؛ وعند إتمام الإيقاف بنجاح يعود المؤشر إلى سطر الأوامر دون إخراج نصوص إضافية.

للتحقق البرمجي السريع من نشاط الخدمة دون إغراق الشاشة بالمعلومات، يكفي تنفيذ systemctl is-active nginx.
وبما أننا قمنا بإنهاء عمل الخدمة في الخطوة السابقة، ستكون النتيجة كلمة inactive للإشارة إلى أنها متوقفة.

لإعادة إطلاق الخدمة بعد توقفها، ننفذ الأمر sudo systemctl start nginx.
يتم التشغيل بصلاحيات الإدارة، وفي حال عدم ظهور رسائل خطأ، فهذا يؤكد نجاح الإجراء.

وعند إجراء تعديلات جوهرية على ملفات الإعداد أو الرغبة في تصفير جلسات العمل، يُستخدم الأمر sudo systemctl restart nginx لقطع الخدمة وإعادة تشغيلها مباشرة.

يمكننا التأكد من استجابة الخدمة لعملية التشغيل عبر الاستعلام مجدداً بواسطة systemctl is-active nginx.
ظهور القيمة active يؤكد أن الخدمة تباشر عملها بنجاح دون مشاكل.

جدولة الخدمات مع إقلاع النظام وإلغاؤها (enable, disable)
يضمن الأمر sudo systemctl enable nginx تشغيل الخدمة ذاتياً بمجرد إقلاع نظام التشغيل.
تتحقق هذه الآلية داخلياً من خلال إنشاء رابط رمزي (symlink) لملف الوحدة داخل المسار الهيكلي /etc/systemd/system/.

للتأكد مما إذا كانت الخدمة مبرمجة للإقلاع الذاتي، نستعلم عبر systemctl is-enabled nginx.
ظهور النتيجة enabled يعني أن الرابط الرمزي جاهز وأن النظام سيطلق الخدمة تلقائياً في الإقلاع القادم.

إذا أردنا منع الخدمة من الانطلاق تلقائياً عند تشغيل الحاسوب، فإننا نلغي هذا السلوك بتنفيذ sudo systemctl disable nginx.
يقوم هذا الإجراء بحذف الرابط الرمزي السابق، مما يعزل الخدمة عن مسار بدء التشغيل التلقائي.

نكرر تشغيل systemctl is-enabled nginx للتحقق من زوال الربط التلقائي،
فتؤكد النتيجة disabled نجاح عملية فك الارتباط.

لإعادة ضبط الخدمة لتعمل مجدداً مع الإقلاع، نمرر التعليمة sudo systemctl enable nginx مرة أخرى؛
حيث يعيد النظام بناء الرابط الرمزي في مساره الصحيح لضمان الجاهزية عند بدء التشغيل المقبل.

مراقبة وحدات النظام واكتشاف الخدمات المعطلة (list-units, failed)
باستخدام الأمر المركب systemctl list-units --type=service --state=running --no-pager | head -n 15، نستطيع فرز الخدمات التي تعمل بكفاءة حالياً واقتطاع أول 15 سجلاً منها.
تعكس المخرجات استقرار منظومة العمل وتوضح تشغيل nginx.service جنباً إلى جنب مع الخدمات الحيوية الأخرى في النظام.

تُعد أداة الفرز السريع systemctl --failed --no-pager ركيزة أساسية لاستكشاف الأخطاء، إذ تقتصر على سرد الخدمات التي تعثر تشغيلها أو واجهت انهياراً مفاجئاً.
تدل العبارة 0 loaded units listed على خلو النظام تماماً من أي خدمات متعثرة، مما يبرهن على استقرار البيئة التشغيلية.

استعرضنا خلال هذه التجربة العملية أبرز أدوات التحكم بالخدمات ومراقبة سلوكها وإعدادها للإقلاع الذاتي تحت مظلة systemctl.
تمثل هذه المهارات حجر الأساس للتعامل السلس والموثوق مع خوادم لينكس المعتمدة على مدير النظام systemd.