كيفية إصلاح مشكلة SystemCTL غير موجود
يحدث خطأ عدم العثور على أمر systemctl عادةً عندما تقوم بتشغيل نظام تشغيل Linux يستخدم نظام تهيئة آخر مثل runit، SystemV، إلخ. يُستخدم نظام التهيئة SystemV عادةً في أنظمة تشغيل Linux القديمة، خاصةً في إصدارات Ubuntu قبل 15.04. على الرغم من ذلك، توجد بعض أنظمة تشغيل Linux الحديثة التي تستخدم أنظمة تهيئة غير systemd، مثل Artix Linux الذي يعتمد على Arch Linux ولكنه يستخدم أنظمة تهيئة أخرى مثل runit، dinit، إلخ بدلاً من systemd.

ما هو نظام التهيئة (init system)؟
نظام التهيئة هو العملية الأولى التي تعمل بعد إقلاع نواة نظامك. توجد عدة أنظمة تهيئة لـ Linux، ولكن الأكثر شيوعًا هو systemd، ويُستخدم في العديد من أنظمة تشغيل Linux الرئيسية. systemd هو مجموعة من العمليات الخلفية (daemons) والمكتبات التي تتحكم في جميع العمليات الخلفية والمكتبات الأخرى، مثل بدء أو إيقاف عملية خلفية، أو تمكينها أو تعطيلها. العملية الخلفية (daemon) في Linux تعادل الخدمة (service) في Windows التي تعمل في الخلفية.
كيف يمكنك إصلاح خطأ عدم العثور على أمر systemctl في توزيعات Linux:
لإصلاح هذا الخطأ، لديك خياران.
- تثبيت systemd واستبدال نظام التهيئة الحالي الخاص بك بـ systemd. نظرًا لأن خطأ عدم العثور على أمر systemctl يحدث لأن systemd غير مثبت على نظامك.
- استخدام نظام التهيئة الذي تملكه توزيعة Linux الخاصة بك لإدارة العمليات الخلفية/الخدمات المختلفة. هذا الحل مخصص لأولئك الذين ليس لديهم systemd مثبتًا ولكن لا يرغبون في تثبيته على أجهزتهم، أو إذا لم يكن systemd متاحًا في مستودعات توزيعتهم.
1. تثبيت systemd (إذا لم يكن مثبتًا):
إذا كنت تستخدم نظام تشغيل يعتمد على Debian/Ubuntu، يمكنك كتابة أمر للبحث عما إذا كان systemd مثبتًا أم لا.
اكتب هذا الأمر إذا كنت تستخدم أنظمة تشغيل تعتمد على Ubuntu أو Debian واضغط على Enter.
sudo dpkg -l | grep systemd.
لتوزيعات Arch Linux، استخدم هذا الأمر:
pacman -Qs systemd

إذا رأيت بعض النصوص كناتج لهذا الأمر، فهذا يعني أن systemd مثبت على نظامك وقد يكون تالفًا.
عندئذٍ تحتاج إلى إعادة تثبيت systemd لكي يعمل أمر systemctl.
للقيام بذلك، اكتب هذا الأمر في الطرفية واضغط على Enter.
sudo apt-get install --reinstall systemd.
سيؤدي هذا إلى إعادة تثبيت systemd باستخدام مدير الحزم apt الذي تستخدمه التوزيعات المعتمدة على Debian/Ubuntu.
لتوزيعات Arch Linux أو مشتقاتها، استخدم هذا الأمر:
sudo pacman -S systemd

إذا لم تحصل على أي ناتج من الأمر sudo dpkg -l | grep systemd أعلاه، فهذا يعني أن systemd غير مثبت على توزيعتك.
في مثل هذا السيناريو، يمكنك إما استخدام نظام التهيئة الذي تملكه توزيعتك أو تثبيت systemd.
لتثبيت systemd على توزيعات Debian/Ubuntu، اكتب هذا الأمر في الطرفية واضغط Enter:
sudo apt-get install systemd
لتوزيعة Arch Linux، اكتب pacman -S systemd كمستخدم root أو باستخدام sudo.
سيؤدي هذا إلى تثبيت systemd على نظام التشغيل الخاص بك. ستتمكن الآن من استخدام أمر systemctl دون أي أخطاء.
2. استخدام نظام التهيئة (init system) الخاص بتوزيعتك:
حل آخر، ويفضل أن يكون الأفضل لهذا الخطأ، هو استخدام نظام التهيئة (init system) الذي تملكه توزيعة Linux الخاصة بك بالفعل لإدارة الخدمات/العمليات الخلفية (daemons).
لمعرفة نظام التهيئة (init system) الذي يمتلكه جهاز الكمبيوتر الخاص بك، يمكنك كتابة هذا الأمر في الطرفية والضغط على Enter.
ls -l /sbin/init

إن /sbin/init هو رابط رمزي (symlink) لنظام التهيئة (init system) الذي تستخدمه توزيعة Linux الخاصة بك. إذا رأيت الرابط الرمزي لـ /sbin/init يشير إلى /lib/sysvinit/init، فهذا يعني أن توزيعتك تستخدم نظام sysv init، وسيتعين عليك استخدام أمر service بدلاً من systemctl لإدارة الخدمات أو العمليات الخلفية (daemons).
صيغة نظام sysv init لإدارة الخدمات بسيطة جدًا أيضًا:
service [service_name] [action]
يمكنك بالتالي بدء خدمة عن طريق كتابة service [service_name] start
مثال:
إذا كنت ترغب في بدء خدمة/عملية Bluetooth الخلفية، يمكنك كتابة الأمر:
sudo service bluetooth start
ثم للتحقق مما إذا كانت تعمل دون أي أخطاء، يمكنك كتابة الأمر:
sudo service bluetooth status
إذا كنت ترغب في إعادة تشغيل أو إيقاف خدمة، يمكنك استخدام الأوامر “service [service-name] restart“ و “service [service-name] stop“ على التوالي.
على سبيل المثال، إذا كنت ترغب في إيقاف خدمة Bluetooth، يمكنك الكتابة:
sudo service bluetooth stop
من المحتمل ألا يكون نظام التهيئة (init system) الخاص بك هو sysvinit، بل نظام تهيئة آخر. لذلك، ما عليك سوى إجراء بحث بسيط على Google حول مخرجات الرابط الرمزي (symlink) لـ /sbin/init. بعد ذلك، يمكنك استخدام الأوامر المطبقة على نظام التهيئة (init system) الموجود على جهازك.
عادةً ما تحتوي العديد من أنظمة التهيئة (init systems) على نفس الأوامر مثل start و stop و restart، ولكن الأوامر لتشغيلها تختلف، حيث يحتوي sysvinit على أمر service لبدء أو إيقاف الخدمات، ويحتوي systemd على أمر systemctl لذلك.
إذا لم تنجح الحلول المذكورة أعلاه معك، فتابع قراءة المقال حيث قد ينجح الحل المذكور أدناه.
كيفية إصلاح خطأ “systemd-resolve command not found”؟
خطأ آخر يتعلق بخطأ “systemctl status command not found” هو خطأ “systemd-resolve command not found“. قد يخطئ المستخدمون في الاعتقاد بأن systemd غير مثبت لديهم، ولهذا السبب لا يعمل systemd-resolve. ولكن بدلاً من ذلك، في إصدارات systemd 239 وما فوق، تم تغيير أمر systemd-resolve إلى resolvectl.
يمكنك بالتالي استخدام “resolvectl ” للتفاعل مع أداة systemd-resolve في توزيعات Linux الخاصة بك.
Comments are closed.