كيف تقتل العملية بالاسم في Linux

فرض إنهاء عمليات إساءة التصرف باستخدام أوامر Linux هذه

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

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

يعد "قتل" عملية أحد الخيارات المفيدة التي يوفرها لك Linux لإيقاف العمليات الجارية ، سواء كانت عملية مقدمة أو عملية خلفية. في هذه المقالة ، سنراجع الأوامر مثل قتل, pkill و اقتل الكل لفرض إنهاء أي عملية على النظام.

لماذا تقتل عملية؟

يعد فهم مفهوم قتل العملية أمرًا مهمًا قبل المضي قدمًا في هذا البرنامج التعليمي. قد يبدو القتل طريقة وحشية للغاية للتعبير عن المفهوم ، لكن ما يعنيه مجازيًا هو إجهاض العملية بالقوة.

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

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

باستخدام pgrep يأمر

معظم مستخدمي Linux على دراية بامتداد grep يأمر. ال pgrep يمكن استخدام الأمر على سطور مماثلة من grep.

pgrep الأمر عند استخدامه ، يعرض ملف pid من عملية التشغيل كما هو محدد في الأمر. سيثبت هذا الأمر أنه مفيد جدًا أثناء استخدام ملف pkill يأمر.

بناء الجملة العام:

pgrep [خيارات] [نمط]

الخيارات المهمة المتاحة مع pgrep يأمر

خياروصف
-uمعرّف عملية القائمة يملكه مستخدم معين
عد عدد عمليات المطابقة
-أناقائمة بأسماء العمليات فقط
قائمة المسار الكامل لاسم العملية

دعونا نظهر استخدام pgrep الأمر باستخدام مثال.

pgrep -u غوراف جنوم

هنا ، نتمنى أن نرى pids من عملية جنوم التي يملكها المستخدم "gaurav". خيار -u يسمح لك بإدراج pids من العمليات التي يملكها مستخدم معين. في هذه الحالة ، المستخدم gaurav.

انتاج:

gaurav @ ubuntu: ~ $ pgrep -u gaurav gnome 1752 1755 1909 1922 2021 2576 4279 gaurav @ ubuntu: ~ $

بينما نمضي قدمًا في هذا البرنامج التعليمي ، pgrep سيساعدنا الأمر في تأكيد ما إذا كانت العملية قد توقفت أو لا تزال قيد التشغيل.

دعونا ننتقل الآن إلى pkill الأمر وتنفيذه.

استخدام pkill يأمر

يمكنك استعمال ال pkill أمر في Linux لقتل العملية باستخدام اسم العملية. حتى لو كنت لا تعرف pid لبعض العمليات ، حتى بعد ذلك يمكنك قتل هذه العملية المعينة باستخدام pkill يأمر.

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

بناء الجملة:

pkill [خيارات] [process_name_pattern] 

مثال:

دعونا نعرض العمليات التي يتم تشغيلها حاليًا باستخدام امتداد أعلى يأمر. يمكنك أيضًا استخدام ملف ملاحظة الأمر لسرد العمليات.

أعلى
أعلى - 14:24:02 حتى 3:12 ، مستخدم واحد ، متوسط ​​التحميل: 0.29 ، 0.48 ، 0.58 المهام: إجمالي 221 ، تشغيل واحد ، 172 نائم ، 0 توقف ، 1 زومبي ٪ وحدة المعالجة المركزية (وحدات المعالجة المركزية): 5.6 دولار أمريكي ، 1.0 سي 0.0 ني ، 92.9 معرف ، 0.4 وات ، 0.0 مرحبًا ، 0.1 سي ، 0.0 ست كي بي المذكرة: إجمالي 3928240 ، 610456 مجانًا ، 2233152 مستخدم ، 1084632 برتقالي / ذاكرة تخزين مؤقت KiB Swap: إجمالي 4083708 ، 3378884 مجانًا ، 704824 مستخدم. 1187268 الاستفادة من Mem PID USER PR NI VIRT RES SHR S٪ CPU٪ MEM TIME + COMMAND 4077 gaurav 20 0 3312128 673480 118360 S 19.6 17.1 15: 13.23 محتوى الويب 3712 gaurav 20 0 3953008 453544 116476 S 4.0 11.5 9: 28.39 MainThread 2010 gaurav 20 0 4084232 111096 45024 S 1.7 2.8 3: 14.85 جنوم شل 1197 الجذر 20 0 1039612 33704 22988 S 1.0 0.9 3: 04.42 Xorg 1426 couchdb 20 0 3772396 16908 2520 S 0.7 0.4 1: 50.83 beam.smp 3288 gaurav 20 0 722480 25048 18272 S 0.7 0.6 0: 06.84 جنوم الطرفية - 3915 غوراف 20 02804900 231524 111228 S 0.7 5.9 0: 54.42 محتوى الويب 4146 gaurav 20 0 3017924 245304 120604 S 0.7 6.2 2: 01.21 محتوى الويب 4417 gaurav 20 0 2964208 234396 119160 S 6.0 0 : 59.90 محتوى الويب 4860 gaurav 20 0 3066800 372920 132544 S 0.7 9.5 0: 48.20 محتوى الويب 16007 gaurav 20 041944 3780 3116 R 0.7 0.1 0: 00.28 أعلى 

استخدام أعلى سيعرض الأمر عمليات متعددة على جهازك الطرفي. دعونا نحاول عرض العملية باسم معين. سوف نستخدم ملف grep لعرض عملية يتطابق اسمها مع السلسلة "mongo".

أعلى | grep -i mongo

ملحوظة: هنا ، لقد استخدمت الخيار -i لجعل البحث غير حساس لحالة الأحرف.

سيعرض إخراج هذا الأمر العمليات المطابقة لاسم "mongo"

 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1: 03.22 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1: 03.25 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1: 03.27 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1: 03.29 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1: 03.31 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1: 03.33 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1: 03.36 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1: 03.38 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1: 03.40 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1: 03.43 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1: 03.45 mongodb 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1: 03.48 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.3 0.1 1: 03.49 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1: 03.52 mongod 1158 mongodb 20 0 288564 4848 1320 جنوبًا 0.7 0.1 1: 03.54 منغود 1158 مليون 20 0 288564 4848 1320 جنوبًا 1.0 0.1 1: 03.57 مليون

الآن ، سوف نستخدم ملف pkill أمر لقتل العملية المسماة "mongo".

pkill mongo

هذا الأمر سيقتل الآن عملية mongo. يمكننا تأكيد ما إذا كان قد تم إجبار العملية على الإنهاء باستخدام pgrep الأمر الذي يعرض ملف pid للعملية الجارية وفق المعايير المحددة من قبل المستخدم.

gaurav @ ubuntu: ~ $ pgrep mongo gaurav @ ubuntu: ~ $

هذا الأمر لن يعيد أي قيمة. هذا يؤكد أن عملية "mongo" تُقتل الآن باستخدام pkill يأمر.

كثيرا ما تستخدم الخيارات مع pkill يأمر

أثناء استخدام ملف pkill الأمر ، سنحتاج إلى الخيارات المذكورة من أجل الاستخدام السليم والسهل لملف pkill يأمر.

خياراتوصف
-Fتطابق الحجج الكاملة بما في ذلك المسافات والاقتباسات والأحرف الخاصة
-uلإبلاغ عملية pkill لتتناسب مع العملية التي يديرها المستخدم المحدد
-1يعيد تحميل العملية
-9يقتل العملية
-15برشاقة إجهاض عملية

دعونا نرى مثالاً آخر على pkill الأمر باستخدام -F اختيار.

هناك أمران يتم تنفيذهما حاليًا على الجهاز كما هو موضح أدناه.

ping bbc.com ping youtube.com

يتم بدء كلا العمليتين بواسطة بينغ يأمر. الآن ، لنفترض أننا نرغب في إنهاء عملية واحدة فقط "ping youtube.com" ثم يتعين علينا استخدام -F الخيار مع pkill الأمر الذي يقتل عملية باسم محدد بما في ذلك المسافات والاقتباسات من اسم العملية.

يأمر:

gaurav @ ubuntu: ~ $ pkill -f "ping youtube.com" gaurav @ ubuntu: ~ $ 

نتيجة:

gaurav @ ubuntu: ~ $ ping youtube.com PING youtube.com (142.250.67.206) 56 (84) بايت من البيانات. 64 بايت من bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq = 1 ttl = 117 مرة = 30.9 مللي ثانية 64 بايت من bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq = 2 ttl = 117 الوقت = 121 مللي ثانية ، 64 بايت من bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq = 206 ttl = 117 مرة = 86.5 مللي ثانية ، 64 بايت من bom12s08-in-f14.1e100.net (142.250.67.206 ): icmp_seq = 207 ttl = 117 مرة = 105 مللي ثانية تم إنهاء gaurav @ ubuntu: ~ $ 

هنا ، "ping youtube.com"قتل الآن و"بينغ bbc.com"لا يزال قيد التشغيل على المحطة.

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

الإشارات المستخدمة مع pkill يأمر

pkill يفرض عملية إنهاء عن طريق إرسال إشارة محددة لتلك العملية. هناك ثلاث إشارات محتملة pkill يمكن أن يرسل الأمر إلى العملية اعتمادًا على الأمر الذي يعطيه المستخدم.

فيما يلي قائمة بالإشارات المتاحة.

الإشارةتخصيص
1(HUP)يعيد العملية المحددة
9 (قتل)يقتل العملية المحددة
15 (مصطلح)بلطف يوقف أو يحبط العملية المحددة

في هذا البرنامج التعليمي ، سنعتمد بشدة على ملف قتل الإشارة. دعونا نستعرض بعض الأمثلة لفهمها بشكل أفضل.

باستخدام pgrep الأمر للحصول على pid مطابقة مع اسم اباتشي.

gaurav @ ubuntu: ~ $ pgrep apache 1218 10402 10403 gaurav @ ubuntu: ~ $
pkill -KIll اباتشي

أو يمكنك أيضًا استخدام الأمر مع الأرقام (على سبيل المثال ، 1 ، 9 ، 15)

pkill -9 اباتشي

كلا الأمرين الموضحين أعلاه سيقتلون عملية اباتشي. التأكيد مع pgrep الأمر مرة أخرى.

gaurav @ ubuntu: ~ $ pgrep اباتشي غوراف @ ubuntu: ~ $

مثل pgrep الأمر لا يُرجع أي مخرجات ، ويثبت أن عملية اباتشي قد قُتلت.

استنتاج

في هذا البرنامج التعليمي ، تعلمنا عن pkill الأمر وكيف يتم استخدامه لقتل العملية باستخدام اسم العملية مباشرة. تعلمنا أيضًا عن pgrep الأمر الذي يستخدم لجلب معرف العملية للعملية التي يديرها أي مستخدم معين. ال pgrep يسمح لنا الأمر بالتحقق مما إذا كانت العملية قد توقفت.