[موضوع تفاعلي] ماذا تعرف عن طرق استخدام systemd؟

حاليا خدمة systemd موجودة تقريبا في اشهر توزيعات اللينكس وفي الغالب أن جميع من يستخدم أنظمة حديثة قد تعامل مع systemd بشكل او بآخر، لكن قد نجهل طرق استعماله أو الاستفادة من خصائصه.

نريد منكم المشاركة بما تعرفون و البحث كذلك عن أساليب جديدة قد تفيدكم وتفيد غيركم.
هذه نقاط كمقال وليس للحصر لإمكانات systemd فأرجو تغطيتها والاستزادة إن امكن:

  1. كيفية التحكم بخدمات النظام؟ (تشغيل، إطفاء، تمكين، تعطيل، فحص الحالة …الخ)
  2. عرض الخدمات المتوفرة وتحديد الخدمات التي تشتغل مع تشغيل الجهاز.
  3. عرض زمن إقلاع الجهاز والوقت الذي تستغرقه كل خدمة للتشغيل. (ارفق صورة للناتج)
  4. طريقة تغيير مدير النوافذ (window manager) مثلا من GDM الى SDDM او LightDM
  5. طريقة تغيير مرحلة التشغيل الافتراضية (run level) (مثلا من نظام الأوامر إلى نظام رسومي)
  6. طريقة تغيير اسم الجهاز (باستخدام systemd)
  7. كيفية إضافة خدمة خاصة (تنشاها بنفسك) إلى خدمات النظام بحيث تتحكم بها من خلال systemd.
  8. تطبيقات رسومية تتعامل معه؟ (أرجو تحديد التوزيعة التي تدعمها او ان كانت متوفرة لجميع التوزيعات)
  9. أساليب فحص وحل المشاكل
  10. استخدام systemd لجدولة المهام (بديل عن cron)
  11. عرض شبكات الاتصال وحالة الاتصال (network)
    … استخدامات أخرى

صورة توضح مكونات systemd في نظام تايزن Tizen:

هذا الموضوع اثير بشكل كبير بعد قيام جزء من فريق دبيان بالانشقاق مؤخرا بسبب فرض الانتقتال من init الى systemd, وقد وجهت سؤال للاستاذ عبدالمجيب حول ذلك وهذا كان رده:
‘’'

شكرا لك رجل الصحراء لكن هناك نقطتين:

  • الموضوع هذا فقط خاص بطرق استخدامه فقط، موضوع الاخ @ahmadkriez التفاعلي تطرق لذلك النقاش.
  • كلام عبدالمجيب غير صحيح، فانهيار الخدمات الثانوية في systemd لن يسبب انهيار النظام. أما انهيار الخدمة الأساسية رقم 1 فهي نفس المشكلة مع SysV init حيث انهيارها سيسبب انهيار النظام، وأنا أقولها من تجربة وليس كلام من الهواء فانا استخدم فيدورا وعاصرت systemd من بداياته وكل ما رايت منه تحسينات رائعة وحصل ان انهار systemd لكن النظام ظل يعمل بشكل طبيعي.

شكرا لك أرحت قلبي :sweat:

ولا حتى تفاعل واحد :scream: :scream:
هل هذا يعني ان المواضيع التفاعلية فاشلة؟ :confused:

ام نطلب من الغالي @Atheer ان يحرك المقص ؟

ليست فاشلة لكن كم عضو فعال في الموقع كله ؟؟ ربما 10 أو اقل ، وهل جميعهم لديهم الخبرة في جميع المواضيع التفاعلية اللتي تطرح ؟

كلامك صحيح من ناحية عدد الاعضاء، لكن هل يعقل ان ولا واحد يعرف حتى النقطة رقم 1؟ هذه من اساسيات اللينكس الان وعلى الجميع معرفتها. انا لدي اجابات كل التسائلات التي طرحتها لكن الهدف من هذه المواضيع ليس فقط اخذ المعلومات من الاشخاص الذين يعرفونها، بل لحث الاخرين على البحث والتعلم.

صورة رائعة جزاك الله خير

الأمر الذي أعرفه فقط هو

systemctl :sweat_smile:

حيث يمكنني من خلاله تفعيل الخدمات أو إيقافها أو جعلها مفعلة لتعمل تلقائيا
وهكذا

لتفعيل خدمة :::

systemctl start *.srvice

لتعطيل خدمة :::

systemctl stop *.service

لجعل الخدمة تعمل تلقائيا :::

systemctl enable *.service

لجعل الخدمة لا تعمل تلقائيا :::

systemctl disable *.service

لمعرفة حالة الخدمة ::

systemctl status *.service

ملاحظة::: مكان النجمة * يوضع اسم الخدمة

ربما ما زالوا يستخدمون init

:speak_no_evil::speak_no_evil::speak_no_evil::speak_no_evil::speak_no_evil::speak_no_evil::speak_no_evil:

ماذا تقصد بالخدمة الاساسية رقم 0؟؟؟ هل هي ماذكر أدناه؟؟
هذا ماوجدته حول مراحل التشغيل.

Table 9-1. Run level numbers

0	Halt the system.
1	Single-user mode (for special administration).
2	Local Multiuser with Networking but without network service (like NFS)
3	Full Multiuser with Networking
4	Not Used
5	Full Multiuser with Networking and X Windows(GUI)
6	Reboot.

في دبيان ومابني عليها نستخدم الأمر بطريقة مختلفة قليلا:
لتشغيل خدمة

service NAME start

وهذا ينطبق على بقية الاوامر، مع ملاحظة ان بعض الخدمات تحتاج لأمر “sudo” لتنفيذها. كامر ايقاف الشبكة او اعادة تشغيلها.

نعم هي ذاتها، كيف تنتقل من مرحلة لاخرى مثلا من 3 الى 5 او العكس وكيف تعين احداهما كافتراضية؟

لماذا قد يستخدم احدهم هذه المرحلة لقتل النظام مثلا؟؟

لا، هي لتحديد وضع التشغيل.
مثلا انت تجهز خادم ولا تريد واجهة رسومية فتختار مرحلة رقم 3 كافتراضي فعند اقلاع الجهاز يذهب لسطر الاوامر مباشرة دون تشغيل الواجهة الرسومية.
او لجهازك الشخصي تحدد مرحلة 5 فيقلع للواجهة الرسومية بشكل افتراضي.
او بامكانك الانتقال بين تلك المراحل بشكل مؤقت مثلا تريد عمل تعديلات في الخادم ولكن لاتريد العمل من سطر الاوامر فتحول لمرحلة 5 لتشغيل الواجهة الرسومية ثم بعد الانتهاء من تعديلاتك تحول الى رقم 3 ليقوم باغلاق الواجهة الرسومية وما يتبعها.

تغيير مراحل التشغيل من خلال الامر :

sudo ln -s /lib/systemd/system/multi-user.target default.target

حيث تقوم باعطاء اسم المرحلة التي تريدها.

قصدت المرحلة الاولى رقم 0 متى قد يحتاجها أحد ؟؟

هذه تستخدم لاطفاء الجهاز poweroff
ورقم 6 لاعادة التشغيل reboot

صحيح لكن هذه الطريق تعمد على معرفة مكان الملف وانشاء الاختصار في المكان الصحيح (طريقة يدوية) هناك حل اسهل هنا :wink:

:blush:

قصدت اختيار المرحلة 0 كمرحلة تشغيل افتراضية.

صحيح الطريقة في الرابط اسهل.

الانتقال لمرحلة التشغيل الثالثة، عدة مستخدمين

 systemctl isolate multi-user.target 

الانتقال لمرحلة التشغيل الخامسة الواجهة الرسومية

 systemctl isolate graphical.target 

في الرابط استخدم systemctl وليس systemd؟؟

اريد منك الجواب، قليل من البحث وستجد الاجابة والفرق بين الاثنين :grin: