اقتل عملية بأمر واحد

في كثير من الأحيان نحتاج إلى قتل عملية من خلال محطة. إذا عرفنا الاسم الكامل للعملية (على سبيل المثال كيت) ليس لدينا مشاكل بسيطة:

killall kate

إنه يحل المشكلة بالنسبة لنا ... لكن ماذا يحدث إذا لم نعرف الاسم الدقيق للعملية؟

في تلك المناسبات ، يتعين علينا سرد جميع العمليات مع سكرتير خاص كما هو موضح في الصورة التالية:


ثم ابحث عن PID للعملية ، والذي في هذه الحالة نبحث عن PID لـ كيت:

بحلول ذلك الوقت ، قم بما يلي:

kill 3808

وفويلا ، هناك نقتل العملية.

حسنًا ... في سطر واحد يمكننا البحث عن العملية (دون الحاجة إلى معرفة الاسم الكامل) ، ومعرفة PID الخاص بها ، وكذلك قتلها:
ps ax | grep kat | grep -v grep | awk '{print $2}' | xargs kill

كما ترى:

  1. نسرد العمليات (سكرتير خاص)
  2. لا نعرف الاسم الكامل أو الدقيق لـ كيت (مهلا ، يمكن أن يكون kate-editor أو شيء من هذا القبيل) لذلك نقوم بالتصفية حسب كات (جريب كات)
  3. لكننا سنحصل على عمليتين مرتبطتين بـ kat إذا استخدمنا هذا الفلتر فقط ، واحدة هي عملية kate ، والأخرى هي العملية التي نقوم بتنشيطها للتصفية ، أترك لك لقطة شاشة حتى تتمكن من إنهاء الفهم: (لاحظ أن هناك سطرين ، أي عمليتان)
  4. لتجنب ما تم شرحه من قبل ، قمنا بعمل مرشح آخر (grep -v grep). ما سنفعله بالعكس ... إذا قمنا بالتصفية باستخدام grep ، فسيظهر فقط التطابقات مع المرشح ، وكذلك grep -v نوصيك بعدم إظهار المباريات ، ولكن لإظهار ما لا يتطابق. أعرض لك لقطة شاشة توضح كيف ستكون النتيجة حتى الآن: (لاحظ أن عملية كيت فقط تظهر الآن)
  5. حسنًا ، لقد قمنا بالفعل بعزل العملية التي نريد قتلها ، والآن علينا فقط استخراج PID الخاص بها وهو الرقم الثاني ، أي ، 4062. و PID في العمود الثاني (يحتوي العمود الأول على مستخدم برقم UID 1) ، لذلك باستخدام awk يمكننا القول أنه يظهر فقط من هذا السطر ما يجده في العمود الثاني (awk "{print $ 2}"). وهو ما سيظهر لنا فقط رقم العملية ، أي فقط PID سيظهر في الجهاز.
  6. لكننا لا نريد إظهار PID ، ما نريده هو قتل العملية باستخدام PID هذا ... لذلك سنفعل ذلك ، ونمرر ما لدينا حتى الآن إلى الأمر قتل و مستعد (xargs قتل)
  7. ماذا يعني ذلك xargs؟ ... بسيط ، في هذه الحالة لا يمكننا تمرير PID للقتل بالأنابيب فقط ( | ) ، هذا ببساطة لا يكفي ، لذا فإن xargs (يسمح بتمرير القيم أو البيانات ثم تنفيذها أو قتلها) هو ما سيسمح لنا بإنهاء المهمة.

وهنا تنتهي 😀

نعم ... أعلم أن هذا يبدو معقدًا بعض الشيء ، ولهذا السبب بالتحديد حاولت شرحه بأفضل ما أستطيع.

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

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

تحياتي


محتوى المقال يلتزم بمبادئنا أخلاقيات التحرير. للإبلاغ عن خطأ انقر فوق هنا.

34 تعليقات ، اترك لك

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني.

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   ezitoc قال

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

    لدي سؤال فقط (لا علاقة له بالإدخال: D) ، كيف (وبأي برنامج) قمت بعمل هذا التأثير الضبابي الذي يسمح لك بتمييز جزء من لقطة الشاشة؟

    تحية.

    1.    ezitoc قال

      بروباندو إذا كان هذا من التنسيق يعمل وإذا لم يكن كذلك يقول لي أحدهم كيف أفعل ذلك

      شكرا جزيلا.

    2.    KZKG ^ جارا قال

      حسنًا ، نعم ... لقد أعدت اكتشاف Linux الآن بعد أن عرفت كيفية العمل مع awk HAHAHAHA.
      حول التأثير وكذا ، لا شيء ... إنه مجرد Gimp 😀

      أقوم بتحديد الجزء الذي أريد تمييزه ، ثم قصه باستخدام [Ctrl] + [X] وألصقه كطبقة جديدة ، ثم حدد الطبقة السفلية (وهي الطبقة التي أريد تعتيمها) وانتقل إلى المرشحات- »Gaussian (أو أي شيء تكتبه الكالينجيون) وفويلا.
      الآن ، لإعطائها التأثير الداكن ، أقوم ببساطة بإنشاء طبقة جديدة (خلفية بيضاء) ووضعها بين هاتين الطبقتين اللتين لديهما بالفعل ، أعطيها اللون الأسود وفي شريط الشفافية (الزاوية اليمنى العليا) أنقلها إلى حيث أحقق التأثير المطلوب .

      تحياتي وشكرا على التعليق 🙂

      1.    روبرتو إيفولفينغ سانتانا قال

        كبير!!

  2.   مانويل دي لا فوينتي قال

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

    1.    KZKG ^ جارا قال

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

      1.    مانويل دي لا فوينتي قال

        هذا صحيح ، ولهذا قلت "إذا كانت العملية من برنامج مرئي".

        1.    Windousian قال

          من الأسهل النقر فوق الزر الذي يحمل علامة "X". لا يزال لدى جنوم شل هذا الزر ، أليس كذلك؟ :-د.

          1.    مانويل دي لا فوينتي قال

            إذا تم تجميد البرنامج (وهذا هو السبب الرئيسي لحاجتك إلى إنهاء العملية) فمن المنطقي أن هذا الزر لن يستجيب مهما ضغطت عليه.

            أعتقد أن GNOME Shell ستزيله قريبًا حتى تتمكن من رؤية الإعجاب الملموس لإغلاق النوافذ عن طريق سحبها إلى أسفل الشاشة كما في Windows 8. وغني عن القول ، إنه تمرين رائع على الشاشات العريضة.

          2.    Windousian قال

            أنا أفهم الآن. في هذه الحالة ، أفضل Control + Alt + Esc (في كيدي).

            لا أطيق الانتظار لرؤية معاينات GNOME Shell الجديدة ، فهي متعة حقيقية.

  3.   لائق قال

    هذا يفعل نفس الشيء ولكن أقل مكتوبًا.
    في هذه الحالة ، أخذت ورقة الأوراق كمثال وهذا هو سبب ظهور الورقة في grep
    ps -e | grep leaf | awk '{print $1}' | xargs kill

    تحياتي

  4.   SYS قال

    تفو! ابني ، حاول تشغيل "pgrep kat" ، وهي "pgrep" لشيء ما.

    وتنفيذ "رجل pgrep". و "man pidof" ، والتي يمكن أن تساعدك أحيانًا "pidof".

    ولتنفيذ «ps aux | grep [k] at "، والتي لن تعود نتيجة" العملية التي نقوم بتنشيطها للتصفية "التي تعلق عليها ، وبالتالي توفر لك العمل.

    تحيات!

    1.    SYS قال

      أوه ، و "pkill" ، الذي يفعل ما تبحث عنه. على سبيل المثال: "pkill kat".

    2.    KZKG ^ جارا قال

      أوه ، مثير للاهتمام ... لم أكن أعرف pgrep 🙂
      شكرا على النصيحة 😀

      1.    SYS قال

        شكرا لك ولمقالاتك.

        بالمناسبة ، في https://flossblog.wordpress.com/2009/11/11/truco-del-dia-excluir-al-proceso-grep-en-la-salida-de-ps-aux/ علّق على تقنية استخدام أوامر مثل «ps aux | grep [n] program_name "، يشرحونه أفضل مني هناك.

        تحيات!

        1.    KZKG ^ جارا قال

          شكرا على الرابط 😀
          هذا هو الشيء العظيم الذي يوجد فيه DesdeLinux ... لا يهم إذا كنت مستخدمًا أو محررًا أو مشرفًا ، فنحن جميعًا نتعلم دائمًا أشياء جديدة 🙂

          تحياتي وشكرا مرة أخرى صديقي.

  5.   koste قال

    شكرًا جزيلاً لكم جميعًا على وقتكم وتفانيكم ، فهذا يجعل الأمر يستحق زيارة هذا الموقع وقراءته عدة مرات في اليوم.

    شكرا لك مرة أخرى.

  6.   السيد لينكس. قال

    KZKG ^ Gaara هو نفسه دائمًا تقريبًا ، عندما يتعلق الأمر بهذه الأنواع من النصائح ، هناك شخص آخر يفعل الشيء نفسه بأمر بسيط. لكنني أهنئه ، فهو دائمًا يساهم بشكل مستمر.

    1.    KZKG ^ جارا قال

      هيه نعم ... أعرف كيف أفعل X osa وأتيت إلى هنا وأشارك الطريقة ، لكنهم بعد ذلك يتشاركون طريقة أبسط لتحقيق نفس الشيء ههههه ، لكن مع هذا فزنا جميعًا ، أليس كذلك؟ 😀

      1.    تروكو 22 قال

        هذا صحيح 0 /

      2.    مانويل دي لا فوينتي قال

        هاهاها ، أنت دائما تسلك الطريق الأكثر تعقيدا. 😀

        1.    KZKG ^ جارا قال

          HAHAHA نعم ، لطالما فكرت: «إذا كنت أعرف كيفية القيام بذلك بالطريقة الصعبة ، فسوف أتعلم القيام بذلك بالطريقة البسيطة دون مشاكل.»و… العكس لا يعمل بنفس هههههه.

  7.   أوسكار قال

    ستكون المشكلة إذا كانت لدينا عمليتان تحملان اسمًا مشابهًا.
    على سبيل المثال ، عملية كيت ، وعملية أخرى ... mmm ... دعنا نقول kater xD
    بمثل هذا الأمر نقتل كلاهما ، أليس كذلك؟

    1.    KZKG ^ جارا قال

      حسنًا ، هذا سيحدث 🙂

  8.   تروكو 22 قال

    TT الفقيرة كيت. أستخدم xkill في KDE ، حيث يتم تشغيله بسرعة باستخدام "ctrl + alt + esc" أو أيضًا باستخدام "ctrl + Esc" وفتح "أنشطة النظام" وقم بذلك بشكل بياني. الآن يجب تعلم هذا الإجراء من خلال الجهاز الطرفي ، على الرغم من أن لدي خادم منزلي مع Debian مستقر ولا يتعطل على الإطلاق.

  9.   يوليان قال

    عظيم! الآن بعد أن أخذت دورة أنظمة التشغيل وأحتاج إلى أداء المهام مع الجهاز ، كان البرنامج التعليمي الخاص بك مفيدًا جدًا! شكرا

  10.   بابلو قال

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

  11.   حالا قال

    حسنًا ، هذا جيد ، على الرغم من وجود أوقات لا يمكن قتلهم فيها….

  12.   ديكوي قال

    pkill -9

    1.    ديكوي قال

      pkill -9 "اسم العملية"
      في التعليق السابق أضع «» لكنه لم يخرج xD

  13.   itobest قال

    ليلة سعيدة ، لدي وقت لقراءة خلاصتك واليوم قررت تجربة هذا الأمر ps ax | الكروم grep | grep -v grep | awk '{print $ 1}' | xargs kill و أحصل على خطأ القتل التالي: لا يمكن العثور على العملية "؟" مع قليل من الخبرة التي أملكها في باش قررت إجراء بعض التعديلات وفي النهاية بقيت مع ps -A | grep c | grep -v grep | awk '{print $ 1}' | xargs kill نظرًا لاستخدام ps -A لإظهار جميع العمليات في شكل موجز وأن الشذوذ الثاني هو أنه ألقى TTY «؟» وقد نجح الأمر بالنسبة لي ، شكرًا جزيلاً لك. أحببت مدونتك ، تحياتي

  14.   مايكل قال

    شكرًا كومبا ، لا يمكنك تخيل مقدار المشكلات التي قمت بحلها من أجلي باستخدام هذا الأمر.

    تحياتي!

  15.   البريد الإلكتروني قال

    شكرا !!!!

  16.   أرثر قال

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

    تحية.

منطقي (صحيح)