পাইপের মাধ্যমে খুন করার জন্য কীভাবে যুক্তি দেওয়া যায়


85

আমাকে একটি নির্দিষ্ট প্রক্রিয়া অনুসন্ধান করতে হবে এবং সেই প্রক্রিয়াটি শেষ করতে হবে। আমি এরকম একটি আদেশ লিখেছি:

ps -e | grep dmn | awk '{print $1}' | kill

প্রক্রিয়া নাম যেখানে dmn। কিন্তু এটা কাজ করছে না। নাম এবং killসেগুলি দ্বারা আমি কীভাবে প্রক্রিয়াগুলি খুঁজে পেতে পারি।

উত্তর:


162
kill $(ps -e | grep dmn | awk '{print $1}')

8
নতুন ব্যবহার করুন $()শব্দবিন্যাস: kill $(ps -e | grep dmn | awk '{print $1}')
Stratus3D

7
অন্যদের জন্য, এটির কাজটি পেতে আমাকে এই উত্তরটি সংশোধন করতে হয়েছিল: kill $(ps -efw | grep dmn | grep -v grep | awk '{print $2}')কেন নিশ্চিত নয় এবং যথেষ্ট যত্ন নেওয়ার প্রয়োজনও নয় এবং এটি আরও তাকাতে হবে।
জোশওয়ায়ার

4
@ জোশওয়েয়ার কারণ এটি অন্যথায় kill' গ্রেপ ' প্রক্রিয়াটিও মেরে ফেলার চেষ্টা করা হয়েছিল যা প্যাটার্নটি অনুসন্ধান করার চেষ্টা করেছিল
মে

এটি কি \nপ্রতিটি আস্তানার পরে পছন্দ হবে না awk '{print $1"\n"}'?
সোপালাজো ডি অ্যারিরেজ

45

আপনি মুছে ফেলতে চান এমন একাধিক প্রক্রিয়া থাকলে আপনি এটি ব্যবহার করতে পারেন:

ps -efw | grep dmn | grep -v grep | awk '{print $2}' | xargs kill

দ্রষ্টব্য: আপনাকে গ্রেপ প্রক্রিয়াটি আউটপুট থেকে নিজেই সরিয়ে ফেলতে হবে, এজন্য grep -v grepব্যবহার করা হয়।


17
আপনি প্রথমে বন্ধনীগুলির মধ্যে প্রথম চর স্থাপন করে আপনার গ্রেপটিতে প্রদর্শিত হওয়া থেকে বিরত রাখতে পারেন, যেমন: গ্রেপ [ডি] এমএন
ওল্ডস্কুল

4
পছন্দ করুন গ্রাপকে নিয়মিত প্রকাশের সাথে মেলে না তার জন্য মেটাচ্যারটিয়ার ব্যবহার করা একটি দুর্দান্ত ধারণা।
jcollado

@ ওल्डস্কুল, +1, আপনি একজন প্রতিভা!
জে.সি.আর

দুর্দান্ত কৌশল, যদিও এটি শেল স্ক্রিপ্টে পরিণত করা আরও জটিল করে তোলে
মেটাগ্রাফার

17

আপনি ব্যবহার করতে পারেন

pkill dmn 

যদি আপনার সিস্টেমে পিকিল কমান্ড থাকে


4
কিলেলের পরিবর্তে পিলার জন্য +1। এটি বিভিন্ন ছাড়া "মানে" একাধিক প্ল্যাটফর্মের উপর উপলব্ধ ( জন্য killall সোলারিস উপর সমতূল্য killall5 উদাহরণস্বরূপ লিনাক্স - ওটা হত্যার হয় সব প্রসেস)
plundra

4

কেবল অন্যকে যুক্ত করা, তবে আমি awk এর regex বৈশিষ্ট্যগুলির ক্ষমতা ব্যবহার করতে পছন্দ করি:

kill $(ps | awk '/dmn/{print $1}')

4

যদি pidofআপনার সিস্টেমে কমান্ড থাকে (আমি জানি যে জেডএসএইচের মতো শেলগুলি ডিফল্টরূপে এটির সাথে আসে তবে আমি ভুল না হলে) আপনি এর মতো কিছু করতে পারেন।

kill -9 $(pidof dmn)


2

আপনার প্রয়োজন হতে পারে না pipe, যদি আপনার pidofকমান্ড থাকে এবং চিত্রটির নামটি জানা থাকে তবে আমি এটি এটি করেছিলাম:

kill $(pidof synergyc)

$()আমি বুঝতে পারি যে এটি আউটপুটটিকে এমন একটি পরিবর্তনশীলতে রূপান্তর করে যা কিল ব্যবহার করতে পারে, মূলত পাইপের মতো pipe কিছু অন্যান্য বিকল্পের চেয়ে খাটো এবং সহজেই বোঝা যায় তবে এটি কম নমনীয় এবং আরও সরাসরি।


0
for procid in $(ps -aux | grep "some search" | awk '{print $2}'); do kill -9 $procid; done

হ্যালো বন্ধুরা .. আমরা লুপের সাহায্যে এটি করতে পারি।

"কিছু অনুসন্ধান" এখানে যে কোনও প্রক্রিয়া নামটি আপনি অনুসন্ধান করতে চান তা এখানে রয়েছে, উদাহরণস্বরূপ "জাভা" সুতরাং যাক যে জাভা প্রক্রিয়া গণনা 200+ তাই একে একে হত্যা করা খুব সাধারণ হবে।

সুতরাং আপনি উপরের কমান্ড ব্যবহার করতে পারেন।

ধন্যবাদ


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.