كيف تقتل عملية في لينكس

لقد مررنا جميعًا بتلك الأيام التي كان فيها جهاز الكمبيوتر الخاص بنا يعمل ببطء شديد ويتعثر حتى في أداء المهام الأساسية. في Windows ، لديك فقط مدير مهام Windows لفحص وقتل العمليات التي ليست مهمة للغاية ولكنها تستهلك كميات هائلة من الذاكرة. ومع ذلك ، في Linux ، لديك ترسانة كاملة من الأوامر وأدوات واجهة المستخدم الرسومية لإدارة هذه المهام. في هذه المقالة ، سنعرض بعض أساليب سطر الأوامر السهلة (CLI) بالإضافة إلى طرق واجهة المستخدم الرسومية لكيفية قتل عملية في Linux.

إنهاء العملية في Linux (2023)

ولكن قبل أن نتعمق في عالم إدارة العمليات في Linux ، دعونا نفهم ما هي العملية بالضبط وما هو معرف العملية في أنظمة Linux.

ما هي العمليات في لينكس

في Linux ، يُعرف كل مثيل قيد التشغيل حاليًا من البرنامج باسم “عملية” ، بينما يُعرف كل ملف قابل للتنفيذ باسم برنامج. عند تنفيذ أي برنامج ، يتم إنشاء عملية ويتم تعيين رقم تعريف فريد مكون من 5 أرقام يعرف باسم “معرف العملية” لكل عملية. عندما تنتهي عملية من التنفيذ أو يتم إنهاؤها بقوة ، يتم تعيين معرف العملية الخاص بها إلى العملية التالية في الخط.

اقتل العملية عبر Command Line في Linux

على الرغم من أن استخدام الجهاز قد يبدو أحيانًا مخيفًا مقارنة باستخدام أدوات واجهة المستخدم الرسومية للمهام الأساسية ، إلا أن إدارة العمليات المختلفة تصبح أسهل كثيرًا بمجرد فهمك للأوامر وخياراتها المتنوعة.

إشارات الإنهاء

عندما تحاول قتل عملية إما من واجهة المستخدم الرسومية أو CLI في Linux ، فإن النواة ترسل إشارة إنهاء إلى العملية. تعمل العملية وفقًا لذلك ، اعتمادًا على الإشارة المستلمة. يتم تخصيص رقم محدد لكل إشارة من هذه الإشارات لكي يفهمها البرنامج بسرعة. هناك أنواع عديدة من إشارات الإنهاء ، لكننا أوضحنا فقط الإشارات الأساسية هنا:

الإشارةالقيمة الرقمية الوصف SIGHUP1 وهي تعني “Signal Hangup”
يتم إرسالها عند إغلاق الجهاز .IGINT2 وهي تعني “مقاطعة الإشارة”
يتم إرساله عندما ينهي المستخدم العملية.
يتم إرساله عندما تحتاج إلى إنهاء عملية على الفور.
يتم إرساله عندما تحتاج إلى إنهاء عملية وتحرير الموارد المستهلكة SIGSTOP19 – لـ ARM ، x86
17 – لـ ALPHA
23 – لـ MIPS
24 – لـ PA-RISCI وهي تعني “Signal Stop”
يتم إرساله عندما تحتاج إلى إيقاف العملية مؤقتًا واستئنافها لاحقًا الإشارات الأكثر استخدامًا هي SIGKILL (9) و SIGTERM (15).

تحديد معرفات العملية

قبل إنهاء العملية ، تحتاج إلى معرفة بعض تفاصيل العملية مثل معرف العملية ووقت التشغيل وما إلى ذلك. لمعرفة تفاصيل العملية ، استخدم الأمر ps:

  لماذا يتم شطب بعض أيقونات تطبيقات Mac؟

ملاحظة

باستخدام الأمر ps ، تحتاج إلى البحث عن العملية عن طريق التمرير والإشارة إلى اسمها ، الأمر الذي قد يكون مرهقًا. بدلاً من ذلك ، يمكنك استخدام الأمر grep مع الأمر ps في خط الأنابيب ، كما هو موضح أدناه:

ملاحظة | grep

لتبسيط الأمور ، يوجد أمر منفصل يعرض فقط معرف العملية لأي عملية قيد التشغيل تحتاج إلى معرفتها. الصيغة المستخدمة في الأمر pidof هي:

pidof <العملية_الاسم>

إنهاء العملية باستخدام أمر القتل

بمجرد ملاحظة معرف العملية للعملية التي تريد إنهاءها ، فإن الأمر الأكثر شيوعًا المستخدم لإنهاء البرامج على نظام Linux الخاص بك هو أمر kill. الصيغة المستخدمة في أمر القتل هي:

اقتل

المعلمة اختيارية ويرسل الأمر kill إشارة SIGTERM (15) افتراضيًا. يمكنك إرسال أي إشارة أخرى بقيمتها الرقمية أو اسم الإشارة الفعلي من الجدول أعلاه.

إنهاء العملية باستخدام أمر pkill

إذا كنت تشعر أن البحث عن معرف العملية غير مريح ، فيمكنك استخدام الأمر pkill. إنه يبحث عن العمليات المطابقة لنمط ما ثم يقتله. صيغة استخدام الأمر pkill هي:

pkill <خيارات> <نمط>

بعض الخيارات الشائعة للاقتران مع الأمر pkill هي:

OptionDescription-n يحدد فقط أحدث العمليات المطابقة لمعرف العملية u يختار العمليات التي يملكها مستخدم معين- x يحدد العمليات المطابقة للنمط تمامًا

هذا مهم بشكل خاص عندما يعمل عدة مستخدمين على مثيلات مختلفة من نفس البرنامج في نفس النظام وتبدأ إحدى الحالات في الحصول على بعض السلوك غير المتوقع. على سبيل المثال ، في لقطة الشاشة أدناه ، نقتل مثيل “gedit” الذي يمتلكه المستخدم “intel” باستخدام الأمر pkill في Linux:

pkill -u إنتل gedit

إنهاء العملية باستخدام أمر killall

يعمل أمر killall بشكل مشابه لأمر kill ولكنه يقتل جميع العمليات المطابقة لاسم العملية بغض النظر عن المستخدم. بشكل افتراضي ، يرسل إشارة SIGTERM إذا لم يتم تحديد خلاف ذلك. الشيء المثير للاهتمام الذي يجب ملاحظته هو أن أمر killall لا يمكنه أبدًا قتل نفسه ولكن يمكنه إنهاء حالات أخرى من أمر killall. صيغة استخدام الأمر killall هي:

killall

بعض خيارات الاقتران بأمر killall هي:

يفسر OptionDescription-r اسم process_name كنمط regex ثم يقتل العمليات المطابقة للنمط – يقضي على العملية المحددة التي يملكها مالك محدد. بدأت بعد) الوقت المحدد.

يمكن أن يكون الأمر killall مفيدًا لإنهاء سلسلة من نفس العملية أو حتى جميع العمليات التي يمتلكها مالك معين. هنا في مثالنا ، نقتل جميع عمليات “النوم لمدة 500 ثانية” باستخدام الأمر killall في Linux:

killall -v النوم

قم بإنهاء عملية Linux باستخدام top / htop Command

هذه الطريقة في عمليات القتل مفيدة عندما لا يكون لديك أدنى فكرة عن العمليات التي تستهلك أقصى قدر من الموارد. في كلا الأمرين ، يمكنك التنقل خلال جميع العمليات الجارية أو حتى عمليات الزومبي ويمكن إنهاءها بسرعة. لاستخدام الأمر العلوي لمراقبة مواردك ، استخدم بناء الجملة في Terminal:

  كيفية إعادة تعيين شاحن Mophie اللاسلكي

قمة

فهم الناتج:

الناتج الرئيسي للأمر العلوي مقسم إلى أعمدة وهي:

  • PID – يظهر معرّف العملية لعملية التشغيل
  • المستخدم – يظهر صاحب العملية
  • PR – يوضح قيمة الأولوية للعملية التي تم تعيينها بواسطة نظام التشغيل
  • NI – يُظهر القيم الجميلة التي تشبه تعيين قيم متباعدة بين المستخدمين للتحكم يدويًا في أولوية المهمة.
  • VIRT – يُظهر مقدار الذاكرة الظاهرية التي تستخدمها العملية.
  • RES – يوضح مقدار الذاكرة الفعلية المستخدمة من قبل العملية
  • SHR – يظهر مقدار الذاكرة المشتركة بواسطة العمليات الأخرى
  • S – يوضح الحالة الحالية للعملية والتي يمكن أن تكون:
    • د- النوم المتواصل
    • R – الجري
    • S – نائم
    • تي – توقف
    • Z – الزومبي
  • وحدة المعالجة المركزية٪ – يعرض مقدار وحدة المعالجة المركزية المستخدمة بواسطة العملية بالنسبة المئوية
  • ٪ MEM – يُظهر مقدار ذاكرة الوصول العشوائي المستخدمة بواسطة العملية بالنسبة المئوية
  • TIME + – يعرض إجمالي وقت تشغيل العملية
  • الأمر – يعرض الأمر الذي تم استدعاؤه للعملية.
  • إذا كنت لا تعرف معرف العملية للمهمة التي تريد قتلها ، فانتقل عبر القائمة باستخدام مفاتيح الأسهم أو ابحث عن اسم العملية في جدول العملية في Linux.

    للبحث في اسم العملية ، اضغط على “L” على لوحة المفاتيح واكتب اسم العملية التي تريد البحث عنها. بمجرد العثور على العملية الشائنة ، اضغط على “k” على لوحة المفاتيح لقتل العملية. الآن ، أدخل معرف العملية أو اتركه في العملية المحددة حاليًا واضغط على “إدخال”. بعد ذلك ، أدخل إشارة الإنهاء ثم اضغط على “ENTER” لإيقاف البرنامج. للعودة إلى المحطة ، اضغط على “q” على لوحة المفاتيح.

    على الرغم من أن الأمر العلوي يعرض تفاصيل مثل معرف العملية واستهلاك الذاكرة والمزيد لجميع العمليات الجارية ، إلا أنه غير مناسب تمامًا للمبتدئين لأنه لا يعرض أي تعيينات مفاتيح أو كيفية استخدامها. من ناحية أخرى ، يحتوي الأمر htop على واجهة أكثر سهولة في الاستخدام ، حتى بالنسبة لأداة سطر الأوامر. بالإضافة إلى ذلك ، فإنه يعرض جميع التفاصيل في عرض منفصل ، وبالتالي ، فإنه لا يفسد النافذة الطرفية. لا يأتي مثبتًا مسبقًا في معظم التوزيعات ، وتحتاج إلى استخدام الأمر التالي لتثبيت htop في Linux:

    sudo apt install -y htop

    لاستخدام htop لإدارة العمليات في Linux ، استخدم الأمر أدناه:

    htop

    لقتل برنامج ، انتقل إلى اسم العملية التي تريد إنهاؤها ، واضغط على “F9” ثم اضغط على Enter. إذا كنت بحاجة إلى البحث عن أي برنامج وقتله ، فاضغط على “F3” على لوحة المفاتيح ، واكتب الاسم واضغط على Enter. سيتم تمييز اسم العملية ، اضغط على F9 ثم اضغط على Enter بلوحة المفاتيح لإنهاء العملية.

    اقتل عملية عبر System Monitor في Linux

    إذا كنت تشعر أن طريقة سطر الأوامر صعبة بالنسبة لك ، فيمكنك استخدام أداة مراقبة النظام المضمنة المتوفرة في كل توزيعات Linux. لمعرفة كيفية عملها ، افتح أداة مراقبة النظام من قائمة التطبيقات واتبع الخطوات أدناه.

    1. بمجرد فتح أداة مراقبة النظام ، سترى ثلاث علامات تبويب في الأعلى – العمليات ، والموارد ، ونظام الملفات. لإدارة عملياتك ، توجه إلى علامة التبويب “العمليات”. هنا ، سترى جميع العمليات الجارية حاليًا. اضغط على CTRL + F للبحث عن اسم العملية. انقر فوق اسم العملية التي تريد إنهاؤها وانقر فوق “إنهاء العملية”.

      8K TV وصلت. إليك ما تحتاج إلى معرفته

    2. بعد ذلك ، سوف تحصل على رسالة تأكيد ما إذا كنت تريد إنهاء العملية أم لا. انطلق وانقر على زر “إنهاء العملية” الأحمر الكبير لإنهاء العملية في Linux.

    أسئلة مكررة

    كيف يمكنني إيقاف جميع العمليات في Linux؟

    إذا كنت بحاجة إلى إيقاف جميع العمليات (باستثناء عمليات shell الخاصة بتسجيل الدخول ، و init ، والعمليات الخاصة بـ kernel) لمستخدم معين في Linux ، فاستخدم إما الأمر pkill أو الأمر killall وفقًا للصيغة:

    pkill -u <اسم المستخدم>

    killall -u <اسم المستخدم>

    إذا كنت بحاجة إلى إنهاء كل عملية لكل مستخدم بما في ذلك نظام init ، فاضغط على مفاتيح “ALT + Prt Sc + o” على لوحة المفاتيح.

    هل من المقبول إنهاء العملية؟

    عند إغلاق أي عملية خلفية غير أساسية أو عملية مستخدم تستهلك قدرًا كبيرًا من ذاكرة النظام ، فإنك تحرر الموارد التي يمكن الآن استخدامها بواسطة عمليات أخرى. ولكن ، قبل إغلاق أي عملية ، تأكد من أنك لا تقتل عملية نظام تشغيل أساسية.

    ما هي عمليات الخلفية في Linux؟

    في Linux ، عمليات الخلفية هي عمليات يمكن تشغيلها بدون مثيل shell أو أي تدخل من المستخدم. يمكن عرضها باستخدام أي من الأوامر – أعلى ، htop ، ps ، إلخ.

    ما هي عملية الزومبي؟

    تُعرف العملية التي قتلها المستخدم ولكنها لا تزال تشغل الذاكرة باسم عملية الزومبي.

    ماذا يفعل CTRL + Z في Linux؟

    عند استخدام CTRL + Z في Linux ، فإنه يرسل إشارة SIGTSTP التي تعلق العملية وترسلها في الخلفية. عندما تكون العملية في حالة تعليق في الخلفية ، لا يمكنك إنهاء العملية حتى يتم إعادتها إلى المقدمة.

    قتل العمليات في لينكس بسهولة

    يعد قتل عمليات استغراق الذاكرة مهمة بالغة الأهمية يجب على كل مستخدم تعلمها. في هذه المقالة ، أظهرنا كلاً من طريقة سطر الأوامر ، بما في ذلك أوامر مثل killall و pkill ، بالإضافة إلى طرق واجهة المستخدم الرسومية لقتل العمليات في Linux. لقد قمنا بتفصيل كيفية استخدام الأدوات الشائعة مثل top و htop لإدارة العمليات على كمبيوتر Linux الخاص بك. إذا واجهت أي مشاكل أثناء استخدام هذه الأدوات لقتل عملية ما ، فأخبرنا بذلك في التعليقات أدناه.