في هذا الدليل، سأناقش أوامر الخدمة وأوامر systemctl، ومدى اختلافهما عندما يتعلق الأمر بإدارة الخدمة.
قبل المضي قدمًا، دعونا أولاً نفهم نظامي Linux المشهورين؛ النظام والنظام
النظام الخامس مقابل Systemd
يعد نظام init على Linux جزءًا مهمًا من عملية التمهيد. إنها العملية الأولى مع PID 1 التي تبدأ عند تشغيل النظام. ثم يبدأ بعد ذلك العمليات الموجودة في ملف inittab. يعرف System V أيضًا أن SysV وsystemd هما من أنظمة Linux الشهيرة.
ال سيسف هو نظام init أقدم وكان جزءًا من توزيعات Unix و Linux الأقدم. يقوم بإدارة خدمات النظام باستخدام البرامج النصية الموجودة في /etc/init.d. بعض توزيعات Linux التي لا تزال تستخدم SysV هي Slackware وGentoo وantiX Linux.
على الجانب الآخر، systemd تم إطلاقه في عام 2010 وسرعان ما تم اعتماده بواسطة العديد من توزيعات Linux. يقوم نظام systemd init بإدارة الخدمات من خلال ملفات .service. وهو الآن جزء من جميع توزيعات Linux الحديثة بما في ذلك Red Hat Enterprise Linux وCentOS وAmazon Linux وFedora وDebian وUbuntu والتوزيعات المستندة إلى أنظمة التشغيل هذه.
يعد systemd أكثر كفاءة مقارنةً بـ SysV. فهو يوفر وقت تشغيل أسرع وإدارة خدمة فعالة ومعالجة التبعية.
يوفر كلا نظامي init أداتين مساعدتين لسطر الأوامر لإدارة الخدمة.
في الأقسام التالية من الدليل، سأناقش هاتين الخدمتين.
أمر الخدمة
ال خدمة الأمر عبارة عن برنامج نصي يقوم بتشغيل البرامج النصية الموجودة في ملف /etc/init.d الدليل. تم تطويره لإدارة خدمة سيسف أو النظام الخامس نظام الحرف الأول. توزيعات Linux التي تستخدم SysV كنظام init تستخدم خدمة أمر لإدارة الخدمة.
ويرد أدناه بناء الجملة العام لاستخدام أمر الخدمة.
خدمة [ اسم الخدمة ] [ فعل ]للحصول على حالة الخدمات التي يتحكم فيها النظام V، استخدم أمر الخدمة مع الملف –الحالة-الكل خيار.
خدمة --الحالة-الكل
ال + يشير إلى أن الخدمة قيد التشغيل، و - يظهر أن الخدمة غير نشطة.
ويمكن أيضًا التحقق من الوضع الحالي لأي خدمة معينة من خلال ذكر اسم الخدمة.
خدمة [ اسم الخدمة ] حالة
بعض أوامر الخدمة المفيدة الأخرى مثل بدء الخدمة وإيقافها وإعادة تشغيلها مدرجة أدناه.
خدمة [ اسم الخدمة ] يبدأخدمة [ اسم الخدمة ] قف
خدمة [ اسم الخدمة ] إعادة تشغيل
يوفر أمر الخدمة هذا تحكمًا أساسيًا لإدارة الخدمات. لقد حلت معظم توزيعات Linux محل SysV كنظام init، ولكن نظرًا للتوافق القديم، لا يزال هذا الأمر يأتي في العديد من توزيعات Linux الأحدث الجاهزة.
أمر سيستيمكتل
باستخدام الأمر systemctl، يمكنك التحكم في الخدمات في ملف /lib/systemd/system و /etc/systemd/system الدلائل. وهو أحد مكونات systemd؛ نظام init موجود في غالبية توزيعات Linux المعاصرة.
تم تصميم systemctl لتوفير المزيد من التحكم في إدارة خدمات النظام. الصيغة العامة لاستخدام الأمر systemctl موضحة أدناه:
systemctl [ خيار ] [ اسم الخدمة ]للتحقق من حالة كافة الخدمات، استخدم الأمر التالي.
وحدات قائمة systemctl --يكتب =service --الجميعلاستخدام خدمة محددة:
حالة النظام [ اسم الخدمة ]
أوامر الإدارة الأساسية للخدمة باستخدام systemctl مذكورة أدناه:
systemctl يُمكَِن [ اسم الخدمة ]بداية النظام [ اسم الخدمة ]
توقف Systemctl [ اسم الخدمة ]
تعطيل Systemctl [ اسم الخدمة ]
إعادة تشغيل Systemctl [ اسم الخدمة ]
يتجاوز الأمر systemctl عندما يتعلق الأمر بالتحكم في الخدمات. يحتوي الجدول أدناه على بعض أوامر systemctl المتقدمة.
مسارات القائمة | لسرد مسار جميع الخدمات في الذاكرة |
نشط [اسم_الخدمة] | للتحقق مما إذا كانت الخدمة أو الوحدة قيد التشغيل أم لا |
تبعيات القائمة [اسم_الخدمة] | لطباعة قائمة تبعيات الخدمة المحددة |
فشل إعادة الضبط | لإعادة تعيين الخدمات التي فشل تحميلها بسبب بعض العيوب |
قناع [اسم_الخدمة] | لتعطيل الخدمة وجعلها غير قادرة على البدء |
الحصول على الافتراضي | لطباعة مستوى التشغيل الافتراضي أو الهدف |
الإعداد الافتراضي [الهدف] | لتعيين مستوى التشغيل الافتراضي أو الهدف |
هو تشغيل النظام | للتحقق من الحالة التشغيلية للنظام |
اعادة التشغيل | لإعادة تشغيل النظام |
poweroff | لاغلاق النظام |
لماذا لا يزال هناك أمر خدمة في توزيعات Linux باستخدام Systemd init System
لا يزال أمر الخدمة جزءًا من العديد من توزيعات Linux لأنه عبارة عن برنامج نصي مجمّع ويلخص نظام init الأساسي، سواء كان SysV أو systemctl. على سبيل المثال، في Ubuntu، يقوم أمر الخدمة بإعادة التوجيه إلى الملف systemctl.
خاتمة
الخدمة وsystemctl هما أداتان مساعدتان لسطر الأوامر تنتميان إلى أنظمة SysV وsystemd init، على التوالي. على الرغم من استبدال أمر الخدمة في توزيعات Linux الحديثة، إلا أنه يظل أداة رئيسية للحفاظ على الخدمات بسبب بساطته وتوافقه. من ناحية أخرى، يعد systemctl جزءًا من جميع توزيعات Linux الحالية ويوفر خيارات متقدمة لإدارة الخدمة.