systemctl: 12 أمرًا لإتقان لينكس 🚀
يحتوي الأمر systemctl على العديد من الميزات التي غالبًا ما يتم تجاهلها. بالإضافة إلى بدء وإيقاف الخدمات في Linux، يمكنك أيضًا سرد الخدمات المثبتة والتحقق من حالتها. دعونا نقوم بمراجعة سريعة! 🚀
ما هو الأمر Systemctl؟
يعد الأمر systemctl أداة الإدارة المركزية لنظام init systemd، والمعروف في المقام الأول بأنه الأداة المستخدمة لبدء الخدمات وإيقافها. ولكن هناك الكثير أكثر من ذلك، كما يتضح من كتاباته. صفحة الرجل الذي يحتوي على أكثر من 1600 سطر. 📖
نظرًا لأن systemctl عبارة عن أداة إدارة، وليس مجرد مشغل خدمة، فيمكنك استخدامه للوصول إلى معلومات مفيدة حول نظامك وخدمات systemd الخاصة به. 💻
لقد اعتمدت معظم توزيعات Linux نظام systemd، ولكن بعضها اختار الاحتفاظ بنظام init التقليدي SystemV. إذا لم تكن متأكدًا من البرنامج الذي يستخدمه توزيعك، فمن السهل معرفة ذلك. سنستخدم الأمر stat لإلقاء نظرة على ملف init.
إحصائية /sbin/init

ملف /sbin/init القابل للتنفيذ هو أول عملية يتم تشغيلها في التوزيعات المستندة إلى SystemV. في التوزيعات المستندة إلى systemd، يشير الارتباط الرمزي بهذا الاسم إلى systemd.
يُظهر لنا السطر الأول من الإخراج أنه على جهاز اختبار Ubuntu هذا، يعد /sbin/init رابطًا رمزيًا للملف /lib/systemd/systemd. من الواضح أن تثبيت Linux هذا يستخدم systemd. إذا كانت توزيعة تعتمد على SystemV، فإن السطر سوف يحتوي فقط على "ملف: /sbin/init".
استجواب الخدمات باستخدام systemctl
يتم تعريف الخدمات في ملفات الوحدة، وسوف ترى كلمة الوحدة منتشرة في جميع أنحاء خيارات systemctl. على سبيل المثال، يمكننا الحصول على قائمة بالخدمات باستخدام الأمر list-units باستخدام الخيار –type.
نظام التحكم قائمة-الوحدات --النوع=الخدمة

يتم عرض الإخراج في عارض الملفات الأقل، مما يسمح لك بالتنقل واستخدام مفتاح / للبحث.
- وحدة: اسم ملف الوحدة.
- يحمل:إذا تمت قراءة ملف وحدة الخدمة في الذاكرة دون أخطاء نحوية، فسيحتوي هذا العمود على "محمل". هذا لا يعني أن الخدمة نشطة.
- أصل:نظرة عامة حول ما إذا كانت الخدمة نشطة أم لا. قد لا تكون الخدمة النشطة قيد التشغيل.
- فرعي:عرض أكثر تفصيلاً حول ما إذا كانت الخدمة قيد التشغيل. على سبيل المثال، قد يتم جدولة خدمة نشطة لمؤقت، وقد تكون خرجت من تشغيلها الأخير.
- وصف:سطر نصي يهدف إلى تحديد الخدمة أو وصفها.
العرض يتضمن الخدمات النشطة فقط. لرؤية كافة الخدمات، نحتاج إلى تضمين الخيار –all.
نظام التحكم قائمة-الوحدات --الكل --النوع=الخدمة

إذا كان عرض كل شيء أمرًا مرهقًا، فيمكننا تصفية الناتج باستخدام خيار –state.
نظام التحكم قائمة-الوحدات --النوع=الخدمة --الحالة=التشغيل

سيقبل خيار الحالة التشغيل، والتوقف، والتمكين، والتعطيل، والفشل.
للتركيز على الخدمات الفاشلة، استخدم الخيار –failed.
نظام التحكم قائمة-وحدات --فشل

لا يوجد محركات أقراص فاشلة على هذا الكمبيوتر.
إذا رأيت أي خدمات فاشلة، فاستخدم خيار list-dependencies للتحقق من التبعيات غير الملباة.
نظام التحكم قائمة-تبعيات sshd.service

تحتوي التبعيات على دائرة مرمزة بالألوان تمثل حالتها. قد يكون:
- الدائرة البيضاء:غير نشط أو تحت الصيانة
- النقطة الخضراء: أصل.
- وايت بوينت:إلغاء التنشيط.
- النقطة الحمراء:فشل أو خطأ.
للتحقق مما إذا كانت خدمة واحدة ممكّنة، استخدم الأمر is-enabled وقم بتوفير اسم ملف وحدة الخدمة.
نظام التحكم es-تمكين خدمة htg-example.service

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

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

إن إيقاف الخدمة أمر سهل مثل بدئها.
انا اتعرق نظام التحكم قف مثال htg.خدمة

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

إذا كنت تريد أن تبدأ الخدمة عند بدء التشغيل، فيجب عليك تمكينها.
انا اتعرق نظام التحكم يُمكَِن مثال htg.خدمة

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

عندما لم تعد بحاجة إلى خدمة لبدء التشغيل عند بدء التشغيل، قم بتعطيلها.
انا اتعرق نظام التحكم إبطال مثال htg.خدمة

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

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