ذكري المظهر

قتل القيادة في لينكس

المستكشف الانجليزي جيمس كوك يقوم باول رحلة بحرية له - ذاكرة في التاريخ 25-8-2018- مساواة

المستكشف الانجليزي جيمس كوك يقوم باول رحلة بحرية له - ذاكرة في التاريخ 25-8-2018- مساواة

جدول المحتويات:

Anonim

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

هناك العديد من الأدوات المساعدة التي تسمح لك بإنهاء العمليات الخاطئة مع kill الأكثر استخداما.

kill القيادة

kill عبارة عن قذيفة مدمجة في معظم القذائف المشتقة من بورن مثل باش وزش. يختلف سلوك الأمر قليلاً بين الأصداف والقابل للتنفيذ /bin/kill القابل للتنفيذ.

استخدم أمر type لعرض جميع المواقع على نظامك الذي يحتوي على عملية kill :

type -a kill

kill is a shell builtin kill is /bin/kill

يخبر الناتج أعلاه أن هيكل مدمج الصدفة له الأولوية على الملف القابل للتنفيذ المستقل ، ويتم استخدامه كلما كتبت kill . إذا كنت ترغب في استخدام الثنائي ، اكتب المسار الكامل للملف /bin/kill . ، سوف نستخدم Bash مدمج.

يأخذ بناء جملة الأمر kill النموذج التالي:

kill…

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

الإشارات الأكثر استخدامًا هي:

  • 1 ( HUP ) - إعادة تحميل عملية. 9 (اقتل) - اقتل العملية. 15 ( TERM ) - أوقف العملية برشاقة.

للحصول على قائمة بجميع الإشارات المتاحة ، استدعى الأمر باستخدام الخيار -l :

kill -l

يمكن تحديد الإشارات بثلاث طرق مختلفة:

  1. باستخدام الرقم (على سبيل المثال ، -1 أو -s 1 ). باستخدام بادئة "SIG" (على سبيل المثال ، -SIGHUP أو -s SIGHUP ). دون بادئة "SIG" (على سبيل المثال ، -HUP أو -s HUP ).

الأوامر التالية مكافئة لبعضها البعض:

kill -1 PID_NUMBER kill -SIGHUP PID_NUMBER kill -HUP PID_NUMBER

يمكن أن يكون PIDs المقدمة إلى أمر kill أحد الإجراءات التالية:

  • إذا كان PID أكبر من الصفر ، يتم إرسال الإشارة إلى العملية بمعرف يساوي PID . إذا كان PID يساوي الصفر ، يتم إرسال الإشارة إلى جميع العمليات في مجموعة العملية الحالية. بمعنى آخر ، يتم إرسال الإشارة إلى جميع العمليات التي تنتمي إلى GID الخاصة بالصدفة التي تستدعي الأمر kill . استخدم الأمر ps -efj لعرض معرفات مجموعة العملية (GID). إذا كان PID يساوي -1 ، يتم إرسال الإشارة إلى جميع العمليات بنفس UID كمستخدم استدعاء الأمر. إذا كان المستخدم الذي يتم استدعاءه هو الجذر ، فيتم إرسال الإشارة إلى جميع العمليات باستثناء الحرف الأول وعملية kill نفسها. إذا كان PID أقل من -1 ، يتم إرسال الإشارة إلى جميع العمليات في مجموعة العملية مكافئة مع GID مساوٍ للقيمة المطلقة لل PID .

يمكن للمستخدمين العاديين إرسال إشارات إلى عملياتهم الخاصة ، ولكن ليس تلك التي تخص مستخدمين آخرين ، بينما يمكن للمستخدم الجذر إرسال إشارات إلى عمليات المستخدم الأخرى.

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

لإنهاء عملية قتل أو قتلها باستخدام أمر kill ، عليك أولاً العثور على رقم معرف العملية (PID). يمكنك القيام بذلك باستخدام أوامر مختلفة مثل top و ps و pidof و pgrep .

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

pidof firefox

سيقوم الأمر بطباعة معرفات جميع عمليات Firefox:

6263 6199 6142 6076

بمجرد أن تعرف أرقام العمليات ، يمكنك إنهاء كل منهم عن طريق إرسال إشارة TERM :

kill -9 2551 2514 1963 1856 1771

بدلاً من البحث عن PIDs ثم إنهاء العمليات ، يمكنك دمج الأوامر أعلاه في واحد:

kill -9 $(pidof firefox)

إعادة تحميل العمليات باستخدام أمر kill

هناك حالة أخرى شائعة الاستخدام kill هي إرسال إشارة HUP ، التي تخبر العمليات بإعادة تحميل إعداداتها.

على سبيل المثال ، لإعادة تحميل Nginx ، تحتاج إلى إرسال إشارة إلى العملية الرئيسية. يمكن العثور على معرف العملية للعملية الرئيسية لـ Nginx في ملف nginx.pid ، والذي يوجد عادةً في دليل /var/run .

استخدم الأمر cat للعثور على PID الرئيسي:

cat /var/run/nginx.pid

30251

بمجرد العثور على PID الرئيسي ، قم بإعادة تحميل إعدادات Nginx بكتابة:

sudo kill -1 30251

يجب تشغيل الأمر أعلاه كجذر أو مستخدم له امتيازات sudo.

استنتاج

يتم استخدام الأمر kill لإرسال إشارة إلى العمليات. الإشارة الأكثر استخدامًا هي SIGKILL أو -9 ، والتي تنهي العمليات المحددة.

قتل المحطة