فرض إنهاء عمليات إساءة التصرف باستخدام أوامر 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
يسمح لنا الأمر بالتحقق مما إذا كانت العملية قد توقفت.