12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl

إدارة خدمات Linux تعتمد بشكل كبير على systemctl، الأداة القوية التي تمنحك تحكمًا شاملاً بخدمات النظام المدعومة بـ systemd. سواء كنت ترغب في تشغيل خدمة، إيقافها، إعادة تشغيلها، أو حتى تحليل حالتها، توفر هذه الأوامر حلولًا فعّالة لكل احتياجاتك الإدارية.

12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl - %categories

في هذا المقال، نستعرض 12 أمرًا مفيدًا باستخدام systemctl، مع شرح كيفية استخدامها لتحسين إدارة خدمات النظام بسهولة وسرعة.

يحتوي أمر systemctl على بعض الوظائف التي يتم تجاهلها بشكل متكرر. بالإضافة إلى بدء تشغيل خدمات Linux وإيقافها، يمكنك سرد الخدمات المثبتة، والتحقق من حالتها. إليك شرح سريع.

ما هو أمر systemctl؟

يعد أمر systemctl أداة الإدارة المركزية لنظام init systemd، وربما يُعرف بأنه الأداة المستخدمة لبدء تشغيل الخدمات وإيقافها. ولكن الأمر أكثر من ذلك، كما يتضح من أن صفحة الدليل الخاصة به يبلغ طولها أكثر من 1600 سطر.

نظرًا لأن systemctl عبارة عن أداة إدارة، وليس مجرد مشغل خدمة، فيمكنك استخدامه للوصول إلى معلومات مفيدة حول نظام systemd وخدماته.

لقد تبنت معظم توزيعات Linux نظام systemd، لكن بعضها اختار الاحتفاظ بنظام init التقليدي SystemV. إذا لم تكن متأكدًا من المخطط الذي تستخدمه توزيعتك، فمن السهل معرفة ذلك. سنستخدم أمر stat لإلقاء نظرة على ملف init.

stat /sbin/init 

12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl - %categories

الملف القابل للتنفيذ /sbin/init هو أول عملية يتم تشغيلها في التوزيعات المستندة إلى SystemV. في التوزيعات المستندة إلى systemd، يشير ارتباط رمزي بهذا الاسم إلى ملف systemd.

اقرأ أيضا:  أفضل ألعاب مريحة لتجربة ممتعة على نظام Linux

يُظهِر لنا السطر الأول من الناتج أنه في جهاز اختبار Ubuntu هذا، يعد /sbin/init ارتباطًا رمزيًا بملف /lib/systemd/systemd. من الواضح أن تثبيت Linux هذا يستخدم systemd. إذا كانت هذه توزيعة مستندة إلى SystemV، فسيحتوي السطر على “File: /sbin/init” فقط.

استجواب الخدمات باستخدام systemctl

يتم تعريف الخدمات في ملفات الوحدات، وسترى كلمة الوحدة متناثرة في جميع خيارات systemctl. كنقطة في هذه الحالة، يمكننا الحصول على قائمة بالخدمات باستخدام أمر list-units مع خيار –type.

systemctl list-units --type=service

12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl - %categories

يتم عرض الناتج في عارض الملفات الأقل، مما يسمح لك بالتمرير خلال الناتج واستخدام مفتاح / للبحث.

  • الوحدة: اسم ملف الوحدة.
  • التحميل: إذا تمت قراءة ملف وحدة الخدمة في الذاكرة دون أخطاء نحوية، فسيحتوي هذا العمود على “محمل”. هذا لا يعني أن الخدمة نشطة.
  • نشط: عرض رفيع المستوى لما إذا كانت الخدمة نشطة أم لا. قد لا تكون الخدمة النشطة قيد التشغيل.
  • فرعي: عرض أكثر تفصيلاً لما إذا كانت الخدمة قيد التشغيل. على سبيل المثال، قد تكون الخدمة النشطة محددة بوقت، وقد تكون قد خرجت من آخر تشغيل لها.
  • الوصف: سطر نصي يهدف إلى تحديد أو وصف الخدمة.

العرض يشمل فقط الخدمات النشطة. لرؤية جميع الخدمات، نحتاج إلى تضمين خيار –all.

systemctl list-units --all --type=service

12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl - %categories

إذا كان رؤية كل شيء يشبه التحميل الزائد للمعلومات، فيمكننا تصفية الناتج باستخدام خيار –state.

systemctl list-units --type=service --state=running

12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl - %categories

سيقبل خيار الحالة التشغيل والتوقف والتمكين والتعطيل والفشل.

اقرأ أيضا:  عذرًا Linux، لا يمكن أن يحتوي HDMI 2.1 على برامج تشغيل مفتوحة المصدر

للتركيز على الخدمات الفاشلة، استخدم خيار –failed.

systemctl list-units --failed

12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl - %categories

لا توجد وحدات معطلة على هذا الكمبيوتر.

إذا رأيت أي خدمات معطلة، فاستخدم خيار list-dependencies للتحقق مما إذا كانت هناك تبعيات غير مستوفاة.

systemctl list-dependencies sshd.service

12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl - %categories

تحتوي التبعيات على دائرة ملونة تمثل حالتها. ويمكن أن تكون:

دائرة بيضاء: غير نشطة أو قيد الصيانة

نقطة خضراء: نشطة.

نقطة بيضاء: معطلة.

نقطة حمراء: فاشلة أو بها خطأ.

للتحقق مما إذا كانت خدمة واحدة ممكّنة، استخدم الأمر is-enabled وقم بتوفير اسم ملف وحدة الخدمة.

systemctl is-enabled htg-example.service

12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl - %categories

التحكم في الخدمات باستخدام systemctl

إن استخدام systemctl لإدارة الخدمات أمر بسيط للغاية، ويتبع تنسيق الأوامر التي رأيناها حتى الآن. والفرق الأكبر هو أنك ستحتاج إلى استخدام sudo لإجراء تغييرات على حالات الخدمات. لم نضطر إلى استخدامه حتى الآن، لأننا كنا نبلغ فقط عن حالات الخدمة.

لبدء تشغيل خدمة، استخدم أمر البدء متبوعًا باسم الخدمة.

sudo systemctl start htg-example.service

12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl - %categories

إذا سارت الأمور على ما يرام، فسيتم إرجاعك بصمت إلى موجه الأوامر. إذا كنت تفضل الحصول على تأكيد إيجابي، فيمكنك الحصول على التحقق من خلال أمر الحالة.

sudo systemctl status htg-example.service

12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl - %categories

إن إيقاف الخدمة أمر سهل مثل البدء بها.

sudo systemctl stop htg-example.service

12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl - %categories

يمكنك إعادة تشغيل الخدمة دون الحاجة إلى المرور بعملية مكونة من خطوتين لإيقافها يدويًا ثم تشغيلها. يقوم أمر إعادة التشغيل بكل ذلك نيابةً عنك.

sudo systemctl restart htg-example.service

12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl - %categories

إذا كنت تريد أن تبدأ الخدمة في وقت التمهيد، فأنت بحاجة إلى تمكينها.

sudo systemctl enable htg-example.service

12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl - %categories

لاحظ أن هذا يشير فقط إلى بدء تشغيل الخدمة عند وقت التمهيد، وليس تشغيلها على الفور. إذا كان هذا ما تريده، فأضف علامة –now.

اقرأ أيضا:  أفضل الطرق لتسريع تعلم سطر أوامر Linux بفعالية

sudo systemctl enable --now htg-example.service

12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl - %categories

عندما لم تعد بحاجة إلى بدء تشغيل إحدى الخدمات في وقت التمهيد، قم بتعطيلها.

sudo systemctl disable htg-example.service

12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl - %categories

يمكنك استخدام الأمر journalctl، وهو جزء آخر من systemd، للبحث عن الإدخالات المتعلقة بالخدمة المرتبطة بـ . يتيح لك الخيار -u (وحدة) تحديد الخدمة التي تهتم بها. باستخدام الخيار -S (منذ)، يمكنك عرض الإدخالات التي حدثت منذ وقت تقديم الخدمة.

journalctl -S "08:00:00" -u htg-example.service

12 أمرًا فعّالًا للتحكم بخدمات Linux باستخدام systemctl - %categories

مجموعة أدوات الخدمة الخاصة بك

إن أي شيء يساعدك في اكتساب رؤى حول العمليات الداخلية لتوزيع Linux الخاص بك سيكون أداة مفيدة للإدارة اليومية واستكشاف الأخطاء وإصلاحها وتشخيص المشكلات. إن الأمر systemctl ليس أداة واحدة. إنه أشبه بمجموعة أدوات من الأدوات المتخصصة، ويستحق التعامل معه.

systemctl يجعل إدارة خدمات Linux أكثر تنظيمًا وفعالية، مما يتيح لك تحكمًا كاملاً بالخدمات الأساسية للنظام. باستخدام الأوامر التي استعرضناها، يمكنك تحسين كفاءة العمليات اليومية بسهولة. إذا كنت تستخدم أوامر إضافية مفيدة، شاركنا تجربتك في التعليقات لتعم الفائدة.

قد يعجبك ايضا