سؤال

كيف يمكنني إنهاء آخر مهمة خلفية تم إنشاؤها في نظام التشغيل Linux؟

مثال:

doSomething
doAnotherThing
doB &
doC
doD
#kill doB
????
هل كانت مفيدة؟

المحلول

وهناك متغير خاص لهذا في باش:

kill $!

و$! توسع إلى PID من عملية مشاركة المنفذة في الخلفية.

نصائح أخرى

وأنت يمكن أن تقتل من قبل عدد الوظائف. عندما كنت وضعت مهمة في الخلفية سترى شيئا مثل:

$ ./script &
[1] 35341

وهذا [1] هو عدد المهمة، ويمكن الرجوع إليها مثل:

$ kill %1
$ kill %%  # Most recent background job

لترى قائمة من الأرقام المهمة استخدم الأمر jobs. أكثر من man bash:

<اقتباس فقرة>   

وهناك عدد من الطرق للإشارة إلى وظيفة في وعاء. و% الطابع يدخل اسم مهمة. قد يكون عدد الوظائف n          يشار إلى %n. ألف وظيفة قد يتم الإشارة إلى استخدام بادئة من الاسم الذي يستخدم لبدء تشغيله، أو باستخدام فرعية أيضا أن          يظهر في سطر الأوامر الخاصة به. على سبيل المثال، يشير %ce إلى وظيفة ce توقف. إذا بادئة مباريات أكثر من وظيفة، باش          تقارير خطأ. باستخدام %?ce، من ناحية أخرى، يشير إلى أي وظيفة التي تحتوي على ce سلسلة في سطر الأوامر الخاصة به. إذا كان          مباريات فرعية أكثر من وظيفة، باش تقارير خطأ. و%% الرموز و%+ الرجوع إلى فكرة قذيفة من المهمة الحالية، وهو توقف العمل الماضية بينما كان في المقدمة أو التي في الخلفية. الوظيفة السابقة قد          يتم الرجوع إليها باستخدام %-. في الناتج تتعلق وظيفة (على سبيل المثال، وإخراج الأمر وظائف)، المهمة الحالية هي دائما          ترفع علم مع +، وظيفته السابقة مع -. يشير % احد (مع عدم وجود مواصفات الوظيفة المرفقة) أيضا          وظيفتك الحالية.

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

jobs -l

والاستخدام مثال:

$ sleep 300 &
$ jobs -l
[1]+ 31139 Running                 sleep 300 &
$ kill 31139

وهذا يجب قتل جميع العمليات الخلفية:

jobs -p | xargs kill -9
skill doB

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

وتحتاج إلى معرف المنتج لها ... استخدام "-A ملاحظة" للعثور عليه.

هذه إجابة خارج الموضوع، ولكن بالنسبة لأولئك المهتمين، ربما تكون ذات قيمة.

كما في إجابة @John Kugelman، فإن % يرتبط بمواصفات الوظيفة.كيفية العثور على ذلك بكفاءة؟استخدم أمر &pattern أقل, ، يبدو أن الرجل يستخدم عددًا أقل من أجهزة النداء (ليس متأكدًا)، في man bash اكتب &% ثم اكتب Enter سيعرض فقط الأسطر التي تحتوي على "%"، لإعادة عرض الكل، اكتب &.ثم أدخل.

ومجرد استخدام الأمر killall:

وkillall taskname

لمزيد من المعلومات والمزيد من الخيارات المتقدمة، اكتب "killall رجل".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top