কোনও প্রক্রিয়ার আইডি সন্ধান করা এবং এটি হত্যা করা


16

যখনই আমার কোনও পটভূমি প্রক্রিয়াটি শেষ করা দরকার ps -e | grep <process_name>

যা এই জাতীয় কিছু প্রিন্ট করে 1766 ? 00:00:13 conky, তারপরে আমি killএটির মতো প্রক্রিয়া আইডি ব্যবহার করি kill 1766

এটি সহজ করার কোনও উপায় আছে কি? তাড়াতাড়ি করা? টাইপিং এর পরিমাণ কমাতে?


1
আমি যে উত্তরটি চেয়েছি তা পেয়েছি, তবে আমি গ্রহণের আগে কিছুক্ষণ অপেক্ষা করব যাতে সম্প্রদায় উপলব্ধ বিভিন্ন বিকল্প থেকে উপকৃত হতে পারে।
গৌতম

দয়া করে নিখরচায় এই প্রশ্নটিকে আরও জেনারেট করুন যদি সম্ভব হয় তবে আরও বেশি লোক উত্তর থেকে উপকৃত হতে পারে
গৌতম

উত্তর:


19

(টি এল, ডিআর: pgrep, pkill)

অনেক UNIX সঙ্গে আসা রূপগুলো pgrepএবং তার সহচর pkill: সোলারিস , লিনাক্স (অংশ মান প্রক্রিয়া ইউটিলিটি , এম্বেডেড লিনাক্স সিস্টেম থেকে অনুপস্থিত হতে পারে), FreeBSD 'র , OpenBSD , NetBSD বা , ... কিন্তু শুধুমাত্র OS X এর উপর MacPorts থেকে , না, AIX , এবং শুধুমাত্র সম্প্রতি এইচপি-ইউএক্স মধ্যেpgrepউপযোগ নাম, ব্যবহারকারী এবং কয়েক অন্যান্য মানদণ্ড দ্বারা মেলানো প্রক্রিয়ার প্রক্রিয়া ID দেখায়। যুক্তিটি pgrepএকটি রিজেক্স হিসাবে ব্যাখ্যা করা হয় যা অবশ্যই প্রক্রিয়াটির এক্সিকিউটেবলের নামের অংশটির সাথে মেলে (যদি আপনি এটি পরিবর্তন করার বিকল্পটি পাস না করেন)। এর pkillবদলে ফোন দিলেpgrep, ইউটিলিটি প্রক্রিয়া আইডি প্রদর্শন করার পরিবর্তে একটি সংকেত প্রেরণ করে।

আর একটি অনুরূপ ইউটিলিটি হ'ল পিডোফ । উপর লিনাক্স , এটা দ্বারা উপলব্ধ হচ্ছে SysVinit বা busybox (তাই আপনি প্রায়ই একটি এমবেডেড লিনাক্স ব্যবস্থা আছে এই নয় যে তে এটি পাবেন pgrep); অন্যান্য ইউনিক্স ভেরিয়েন্টে পোর্ট রয়েছে। pidofউপযোগ কম বিকল্প রয়েছে, এটা বেশিরভাগ শুধুমাত্র পুরো এক্সিকিউটেবল ফাইলের নাম সাথে মেলে। এর সহযোগী ইউটিলিটিটি killallম্যাচ করা প্রোগ্রামগুলিতে একটি সংকেত প্রেরণ করে ¹

¹ বিষয়ে সতর্ক থাকুন যে killallউপর সোলারিস এবং সম্ভবত অন্যান্য UNIX রূপগুলো একটি ভিন্ন অর্থ আছে; killallসোলারিসে মূল হিসাবে টাইপ করবেন না ।


বাহ আপনার উত্তরটি খুব বিস্তারিত, গভীরতায় আরও অনেক কিছু, ধন্যবাদ। যদি সম্ভব হয় তবে উত্তরটির সাথে মেলে প্রশ্নটি সম্পাদনা করুন।
গৌতম

@ গৌতমকে আমি মনে করি না যে প্রশ্নটি প্রসারিত হওয়া দরকার। আপনি যদি তা করেন তবে এটি নিজে সম্পাদনা করতে দ্বিধা বোধ করবেন।
গিলস 'অশুভ হওয়া বন্ধ করুন'

সর্বাধিক সংখ্যক ভোটের উত্তরগুলির সাথে আপনার উত্তর আরও বিশদ দেয়, তাই আমি এটি গ্রহণ করছি
গৌতম

8
  • killall ProcessName (এই আদেশের একটি অসুবিধা আছে যে আপনি সর্বদা কোনও প্রোগ্রামের প্রক্রিয়া নামটি জানেন না)।
  • pidof ProccessName এবং kill the result form pidof
  • ps xu | grep <process name> | grep -v grep | awk '{ print $2 }' | xargs kill -9 এই এক লাইনটি ব্যবহার করে দেখুন এবং এটি আপনার ব্যাশের ইতিহাস তৈরি করে পুনরায় ব্যবহার করুন বা এর জন্য আরও একটি উপকরণ তৈরি করুন।

দ্বিতীয়টি pidofখানিকটা সহজ মনে হচ্ছে, তবে এটি 2 পদক্ষেপ নেয়
গৌতম

আমি একটি এক লাইনের কমান্ড সন্ধান করতে / তৈরি করতে পারি যা এক ধাপে এটি করে (কোনও রুট প্রক্রিয়া নাম সহ) তবে এর জন্য আপনাকে একটি দীর্ঘ লাইন টাইপ করতে হবে (যা উপরের দুটি পদক্ষেপের চেয়ে শক্ত), অথবা আপনি এটি একবার টাইপ করতে পারেন এবং এটি পুনরায় ব্যবহার করুন ইতিহাস গঠন।
হানান এন।

@ গৌতমক আমি একক কমান্ড বিকল্প দিয়ে উত্তরটি আপডেট করেছি।
হানান এন।

6

যদিও হানানের কিছু ভাল পরামর্শ রয়েছে, আমি যুক্ত করব pgrep/ pkill। আপনি কোন প্রক্রিয়াটি আবিষ্কার করেন তার উপর তারা আরও সূক্ষ্ম নিয়ন্ত্রণের অনুমতি দেয় এবং নিয়মিত অভিব্যক্তিগুলি যদি আপনি সুনির্দিষ্ট প্রক্রিয়াটি না জানেন তবে আপনাকে হত্যা করতে হবে allow

পিএস হানানকে ব্যাকটিক্স দিয়ে সরাসরি pidofখাওয়ানো যেতে পারে kill:

kill `pidof processname`

pkillঠিক কি আমি আমি অধিকাংশ সময় প্রক্রিয়া নাম জানতে প্রায় তার খুঁজছেন ছিল ছিল conkyবা firefoxবা chromeবা ওই জাতীয় কিছু। ধন্যবাদ
গৌতম

1

এটি সম্পর্কে -

ps -e | awk '$4~/<process name>/{print $1}' | xargs kill

উদাহরণ:

[jaypal:~/Temp] sleep 100&
[1] 74863
[jaypal:~/Temp] ps -e | awk '$4~/sleep/{print $1}' | xargs kill
[1]+  Terminated: 15          sleep 100

হালনাগাদ:

দুঃখিত, এই স্পষ্টত কম টাইপ করার প্রয়োজন পূরণ করে না, যাতে এরকম একটি ভালো উপায় একটি যোগ করার জন্য হবে functionআপনার টু .bashrc, .profileবা যাই হোক না কেন প্রারম্ভে স্ক্রিপ্ট। ফাংশনটি এরকম কিছু হতে পারে -

killp() {
awk -v pname="$1" '($4==pname){print $1}' <(ps -e) | xargs kill
}

একবার যুক্ত হয়ে গেলে আপনি কেবল নিজের প্রক্রিয়াটির নামটি পাস করতে পারেন:

[jaypal:~] sleep 100&
[1] 77212
[jaypal:~] killp sleep
[1]+  Terminated: 15          sleep 100
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.