كيفية إصلاح خطأ "لم يتم العثور على أمر Systemctl" في Linux

حل سريع لحل المشكلة باستخدام الأمر "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 فكرة جيدة وتحل المشكلة جيدًا. يمكننا بسهولة استخدام الخدمات الأمر بعد فهم الأمثلة التوضيحية الموضحة في البرنامج التعليمي.