حل سريع لحل المشكلة باستخدام الأمر "systemctl" وإدخال بعض البدائل الفعالة له
systemctl
نظرًا لكونه أداة مساعدة مهمة في نظام Linux البيئي ، فمن الشائع جدًا أن تواجه مشكلة "systemctl: الأمر غير موجود" خطأ عند محاولة تشغيل systemctl
يأمر. قد لا يكون هذا هو الحال بالنسبة لجميع توزيعات Linux ، ولكن من المحتمل أن تواجه هذا الخطأ عند استخدام إصدار أقدم من توزيعة Linux التي لا تدعم systemctl
يأمر.
المشكلة التي تحدث لك هي مشكلة شائعة جدًا ويمكن حلها بسهولة. لذلك ، لا تقلق على الإطلاق وانتقل إلى البرنامج التعليمي الكامل للعثور على حل سريع وسهل.
سنحاول فهم المشكلة أولاً ثم إصلاحها.
نظره في systemctl
و systemd
لأن الخطأ هو بالإشارة إلى systemctl
الأمر ، سيكون من الجيد معرفة أساسيات هذا الأمر لفهم إصلاح هذا الخطأ بشكل أفضل.
systemctl
هي أداة مساعدة لسطر الأوامر يقدمها Linux ، والتي تُستخدم لمراقبة والتحكم في أداة سطر أوامر أخرى تسمى "systemd
'. كما أنه يتفقد ويتحكم في مدير النظام جنبًا إلى جنب معsystemd
' خدمة.
النحو العام:
systemctl [الخيار] [الاسم]
systemd
عبارة عن حزمة من الشياطين والمكتبات والأدوات المساعدة التي تتحكم في البرامج التي يتم تشغيلها عند بدء تشغيل نظامك. systemd
يدير أيضًا بدء وظيفة مهمة مثل بدء مجلة عن نشاط النظام.
تعمل هذه الأداة المساعدة كأداة إدارة مركزية لمعظم إن لم يكن جميع أنظمة التشغيل المستندة إلى Linux.
السبب الجذري للخطأ
قد يكون السبب الأكثر احتمالية لهذا الخطأ هو أنك تستخدم إصدارًا أقدم من توزيع Linux. تستخدم العديد من الإصدارات القديمة ملحق تهيئة SysV
بدلا من ال systemd
خدمة.
systemd
الأداة المساعدة غير موجودة في إصدارات Linux السابقة لأنها إضافة حديثة إلى سلة الأدوات المساعدة التي يوفرها Linux. systemctl
متوافق مع الوظيفة والمراقبة مع systemd
فائدة وسوف تفشل في العمل مع التكوينات السابقة مثل SysV
فيه
أو مغرور
.
إذا كنت لا تستخدم systemd
، ثم هذا الخطأ متوقع. إنه بسيط ومباشر على هذا النحو.
قد تواجه هذا الخطأ بالطريقة التالية.
gaurav @ ubuntu: ~ $ sudo systemctl ابدأ كلمة مرور ufw [sudo] لـ gaurav: sudo: systemctl: الأمر غير موجود gaurav @ ubuntu: ~ $
هنا ، حاولنا بدء تشغيل Ubuntu Fire Wall (ufw
) باستخدام systemctl
الأمر وواجه الخطأ "systemctl: command not found".
لذا ، ماذا تفعل الآن إذا كنت لا ترغب في تغيير توزيعة Linux الحالية التي تستخدم بعض أدوات الإدارة المركزية الأخرى بخلاف systemd
؟ حسنًا ، لدينا حل سريع لك من شأنه أن يسمح لك بالحفاظ على توزيع Linux الحالي الخاص بك وكذلك إصلاح الخطأ الخاص بك في أي وقت من الأوقات.
دعونا نراقب الإصلاح الآن.
إصلاح الخطأ "systemctl: الأمر غير موجود"
أخيرًا ، دعونا الآن نلقي نظرة على حل المشكلة المعنية بعد تحليل الأسباب والحقائق الأساسية حول المشكلة.
الإصلاح 1: الاستبدال systemctl
مع الخدمات
يأمر
إصلاح بسيط للخطأ المعني هو استخدام امتداد الخدمات
الأمر بدلاً من الخطأ المسبب systemctl
يأمر.
الخدمات
يساعد الأمر في تشغيل ملف تهيئة SystemV
البرنامج النصي الذي تستخدمه توزيعات Linux القديمة. إذا كنت لا ترغب في تثبيت systemd
على نظامك ، سيعمل هذا الإصلاح بالتأكيد من أجلك.
يمكنك بدء أو إعادة تشغيل أو إيقاف أي خدمات وشياطين على توزيع Linux الخاص بك باستخدام الخدمات
يأمر.
ال الخدمات
الأمر و systemctl
الأمر بنفس الطريقة ، الاختلاف الوحيد هنا هو توافق الأمر مع الأدوات المساعدة المسؤولة عن التشغيل الرشيق لنظامك.
دعونا نرى الخدمات
الأمر مع توضيح.
بناء الجملة العام:
خدمة sudo [اسم_الخدمة] [إجراء]
في الصيغة أعلاه ، فإن ملف [عمل]
قد يتضمن الفضاء إجراءات مثل بداية
, توقف
, إعادة تشغيل
أو الحالة
.
سنقوم بتشغيل نفس الأمر لبدء تشغيل ufw
الخدمة باستخدام الخدمات
يأمر.
بدء خدمة sudo ufw
انتاج |:
gaurav @ ubuntu: ~ $ sudo service ufw start gaurav @ ubuntu: ~ $ sudo service ufw status ● ufw.service - جدار حماية غير معقد محمل: محمل (/lib/systemd/system/ufw.service ؛ مُمكّن ؛ إعداد مسبق للبائع: enab نشط: نشط (تم الخروج منه) منذ الاثنين 2020-09-28 11:22:34 IST ؛ 1 ساعة و 5 دقائق مضت المستندات: man: ufw (8) العملية: 333 ExecStart = / lib / ufw / ufw-init بدء هادئ (الرمز = تم الخروج ، الحالة = 0 / SU الرئيسي PID: 333 (الرمز = الخروج ، الحالة = 0 / النجاح) 28 سبتمبر 11:22:34 نظام أوبونتو [1]: بدء جدار الحماية غير المعقد. تحذير: تم تدوير دفتر اليومية منذ بدء تشغيل الوحدة. إخراج السجل هو عاجز
هنا ، الخدمات
يتم استخدام الأمر بدلاً من systemctl
الأمر وكان يعمل بشكل جيد للغاية.
دعونا نرى مثالاً آخر على الخدمات
الأمر للحصول على فهم مناسب لها.
بدء sudo خدمة apache2
انتاج |:
gaurav @ ubuntu: ~ $ sudo service apache2 status ● apache2.service - خادم Apache HTTP تم تحميله: (/lib/systemd/system/apache2.service ؛ مُمكّن ؛ الإعداد المسبق للمورد: Drop-In: / lib / systemd / system / apache2.service.d └─apache2-systemd.conf نشط: نشط (قيد التشغيل) منذ الاثنين 2020-09-28 11:22:47 IST ؛ منذ ساعة و 16 دقيقة العملية: 1172 ExecStart = / usr / sbin / apachectl start (الرمز = تم الخروج ، الحالة = 0 / SUCCE Main PID: 1248 (apache2) المهام: 55 (الحد: 4456) CGroup: /system.slice/apache2.service ├─1248 / usr / sbin / apache2 -k start ├─1249 / usr / sbin / apache2 -k ابدأ └─1250 / usr / sbin / apache2 -k بدء 28 سبتمبر 11:22:43 ubuntu systemd [1]: بدء خادم Apache HTTP ... 28 سبتمبر 11:22:47 ubuntu apachectl [1172 ]: AH00112: تحذير: DocumentRoot [/ var / www 28 سبتمبر 11:22:47 ubuntu apachectl [1172]: AH00558: apache2: تعذر اكتشاف 28 سبتمبر بشكل موثوق 11:22:47 ubuntu systemd [1]: تم بدء تشغيل Apache HTTP الخادم. gaurav @ ubuntu: ~ $
لقد استخدمنا ملف الخدمات
الأمر لبدء الأداة المساعدة apache2. باستخدام الحالة
الخيار مع الخدمات
سيعرض الأمر الحالة الحالية للخدمة. سوف نحصل على التفاصيل سواء كانت قيد التشغيل أو ميتة (غير نشطة).
دعونا الآن نستخدم توقف
الإجراء لإيقاف خدمة apache2 باستخدام ملف الخدمات
يأمر.
gaurav @ ubuntu: ~ $ sudo service apache2 stop gaurav @ ubuntu: ~ $ sudo service apache2 خطوط الحالة 1--1 ... تخطي ... ● apache2.service - تحميل خادم Apache HTTP: تم تحميله (/ lib / systemd / system / apache2.service ؛ مُمكّن ؛ الإعداد المسبق للمورد: مُمكّن) تسجيل مسبق: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf نشط: غير نشط (ميت) منذ الاثنين 2020-09-28 12 : 42: 06 IST ؛ قبل 1 ثانية العملية: 4928 ExecStop = / usr / sbin / apachectl stop (الرمز = الخروج ، الحالة = 0 / نجاح) العملية: 1172 ExecStart = / usr / sbin / apachectl بدء (الكود = الخروج ، الحالة = 0 / النجاح) PID الرئيسي : 1248 (code = exited، status = 0 / SUCCESS) 28 سبتمبر 11:22:43 ubuntu systemd [1]: بدء خادم Apache HTTP ... 28 سبتمبر 11:22:47 ubuntu apachectl [1172]: AH00112: تحذير : DocumentRoot [/ var / www / html] غير موجود في 28 سبتمبر 11:22:47 ubuntu apachectl [1172]: AH00558: apache2: تعذر تحديد اسم المجال المؤهل بالكامل للخادم باستخدام :: 1. قم بتعيين 'S Sep 28 11:22:47 ubuntu systemd [1]: بدء خادم Apache HTTP.
من الأمثلة التفصيلية الموضحة أعلاه ، يمكننا أن نستنتج أنه يمكننا استخدام هذا الأمر بدلاً من systemctl
أمر للتحكم ومراقبة الشياطين والخدمات الأخرى ضمن توزيع Linux.
الإصلاح 2: التحقق من systemd
حزمة
في وقت ما قد يكون الأمر كذلك أن فقط systemd
قد يؤدي تثبيت الحزمة إلى إصلاح المشكلة. أولاً ، تحتاج إلى التحقق من حالة تثبيت ملف systemd
الحزمة على نظامك.
استخدم الأمر التالي للتحقق من الحزمة على نظامك.
sudo dpkg -l | نظام grep
إذا كان systemd
تم التثبيت بالفعل ، وسوف تحصل على مخرجات مماثلة كما هو موضح أدناه.
gaurav @ ubuntu: ~ $ sudo dpkg -l | grep systemd [sudo] كلمة مرور gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 نظام المراسلة بين العمليات البسيط (تكامل النظام - المستخدم) ii libnss-systemd: amd64 237-3ubuntu10.42 وحدة amd64 nss التي توفر ديناميكية تحليل اسم المستخدم والمجموعة ii libpam-systemd: amd64 237-3ubuntu10.42 amd64 system and service manager - PAM module ii libsystemd0: amd64 237-3ubuntu10.42 amd64 systemd library ii libsystemd0: i386 237-3ubuntu10.42 i386 systemd مكتبة الأدوات ii networkd-dispatcher 1.7-0ubuntu3.3 جميع خدمات المرسل لتغيير حالة اتصال systemd-networkd ri python3-systemd 234-1build1 amd64 Python 3 روابط لنظام Systemd II systemd 237-3ubuntu10.42 amd64 system and service manager ii systemd-sysv 237- 3ubuntu10.42 amd64 مدير النظام والخدمات - روابط SysV gaurav @ ubuntu: ~ $
إذا حصلت على إخراج مشابه لهذا ، فهذا يعني ذلك systemd
مثبت على نظامك.
إذا لم يكن مثبتًا ، فيمكنك تثبيته بالطريقة التالية.
sudo apt-get update
سودو apt-get install systemd
إذا تم تثبيته واستمر الخطأ ، فحاول إعادة تثبيته باستخدام الأمر التالي.
sudo apt-get install - إعادة تثبيت systemd
سيؤدي هذا إلى حل مشكلتك عن طريق تثبيت systemd
خدمة.
استنتاج
لقد تعلمنا إصلاح "systemctl: الأمر غير موجود" في هذا البرنامج التعليمي. يمكننا أن نستنتج بأمان أن استخدام الخدمات
الأمر بدلاً من systemctl
فكرة جيدة وتحل المشكلة جيدًا. يمكننا بسهولة استخدام الخدمات
الأمر بعد فهم الأمثلة التوضيحية الموضحة في البرنامج التعليمي.