পিল এবং কিলালের মধ্যে পার্থক্য কী?


49

আমি জানি যে pkillএর চেয়ে বেশি ফিল্টারিং বিধি রয়েছে killall। আমার প্রশ্ন হল, এর মধ্যে পার্থক্য কী:

pkill [signal] name

এবং

killall [signal] name

আমি পড়েছি এটি killallআরও কার্যকর এবং nameপ্রোগ্রামের সাথে মেলে এমন সমস্ত প্রক্রিয়া এবং উপপ্রসেসগুলি (এবং পুনরাবৃত্তভাবে) মেরে ফেলেছি । pkillএটাও কি করে না?


উত্তর:


46

pgrepএবং pkillইউটিলিটি সূর্যের সোলারিস 7 ব্যবস্থা চালু হয়েছে এবং, g33klord লক্ষনীয় , তারা আমার যুক্তি, যা চলমান প্রসেস নাম বিরুদ্ধে মিলেছে হিসাবে একটি প্যাটার্ন নিতে। pgrepকেবল মেলানো প্রক্রিয়াগুলির তালিকা মুদ্রণ করার সময় , প্রক্রিয়াগুলিতে pkillনির্দিষ্ট সংকেত (বা SIGTERMডিফল্ট দ্বারা) প্রেরণ করা হবে । সাধারণ অপশন এবং মধ্যবর্তী শব্দার্থবিদ্যা pgrepএবং pkillউপকারে আসে যখন আপনি সতর্কতা অবলম্বন করা আবশ্যক এবং প্রথম সঙ্গে তালিকা ম্যাচিং প্রসেস পর্যালোচনা চান pgrep, তারপর তাদের দিয়ে হত্যা করতে এগিয়ে pkillpgrepএবং pkillদ্বারা উপলব্ধ করা হয় procps প্যাকেজ, যা অন্যান্য প্রদান করে /procযেমন ফাইল সিস্টেম ইউটিলিটিগুলি, ps, top, free, uptimeপ্রমুখ।

killallকমান্ড দ্বারা প্রদান করা হয় psmisc প্যাকেজ, এবং থেকে পৃথক pkillযে, ডিফল্টরূপে, এটা যুক্তি নাম ঠিক (প্রথম 15 অক্ষর পর্যন্ত) সাথে মিলে যায় যখন প্রসেস সংকেত পাঠানো হবে নির্ধারণের। -e, --exactবিকল্পটি 15 অক্ষরের বেশি নামের জন্য সঠিক মিল প্রয়োজন চিহ্নিত করা যাবে। এটি killallতুলনায় তুলনায় কিছুটা নিরাপদ করে তোলে pkill। যদি নির্দিষ্ট আর্গুমেন্টে স্ল্যাশ ( /) অক্ষর থাকে তবে আর্গুমেন্টটিকে ফাইলের নাম হিসাবে ব্যাখ্যা করা হয় এবং সেই নির্দিষ্ট ফাইলটি চালানো প্রক্রিয়াগুলি সিগন্যাল প্রাপক হিসাবে নির্বাচিত হবে। killallএছাড়াও, প্রক্রিয়া নামের রেগুলার এক্সপ্রেশন ম্যাচিং সমর্থন মাধ্যমে -r, --regexpবিকল্প।

এছাড়াও অন্যান্য পার্থক্য আছে। killallউদাহরণস্বরূপ কমান্ড বয়স দ্বারা প্রসেস মেলানোর জন্য অপশন আছে ( -o, --older-thanএবং -y, --younger-thanযখন), pkillশুধুমাত্র (এর মাধ্যমে একটি নির্দিষ্ট টার্মিন্যালে প্রসেস হত্যা করতে বলা যেতে পারে -tবিকল্প)। স্পষ্টতই, দুটি কমান্ডের নির্দিষ্ট কুলুঙ্গি আছে।

নোট করুন যে ইউনিক্স সিস্টেম ভিkillall থেকে সিস্টেম বংশোদ্ভূত কমান্ড (উল্লেখযোগ্যভাবে সান এর সোলারিস , আইবিএম এর এআইএক্স এবং এইচপি-র এইচপি-ইউএক্স ) নির্দিষ্ট ব্যবহারকারীর দ্বারা কিলযোগ্য সমস্ত প্রসেসকে হত্যা করে, মূল দ্বারা চালিত হলে কার্যকরভাবে সিস্টেমটি বন্ধ করে দেয়।

লিনাক্স পিএমসিস্ক ইউটিলিটিগুলি বিএসডি-তে পোর্ট করা হয়েছে (এবং এক্সটেনশনে ম্যাক ওএস এক্স ), সুতরাং killallসেখানে "নাম দ্বারা কিল প্রক্রিয়াগুলি" শব্দার্থবিজ্ঞানের অনুসরণ করে।


আমি যে প্রধান পার্থক্যের মুখোমুখি হয়েছি তা হ'ল কোনও ব্যবহারকারীর দ্বারা প্যাটার্নের আদেশগুলি থামানো killall -u <username> -r <process>বা pkill <process> -U <uid>যা killallআমার ব্যবহার করা অনেক সহজ করে easier
জেরেমিসপ্রোফাইল

13

pkillআপনার উল্লেখ করা ফিল্টার এবং এটি অত্যন্ত পুনরায় ব্যবহারযোগ্যতার সাথে জুটিবদ্ধ হওয়ার কারণে উভয়ই ভবিষ্যতের প্রজন্মকে শেখানোর উপযুক্ত pgrep। তারা একইভাবে প্রক্রিয়াগুলিকে হত্যা করে এবং পুনরাবৃত্তির সাথে হত্যাও করে না - যদিও এর সাথে pgrepআপনি সেশন (প্রতি-টিটি, থিংস সেট) বা প্রক্রিয়া গোষ্ঠী (চিন্তা করুন চাকরি নিয়ন্ত্রণ) দ্বারা নির্বাচন করতে পারেন।


8

একটি পার্থক্য হ'ল killallপ্রক্রিয়াটির সঠিক নামটি আর্গুমেন্ট হিসাবে pkillগ্রহণ করুন যেখানে আংশিক বা সম্পূর্ণ নাম নিতে পারে।

আপনি pkill সম্পর্কে গভীরতা জানতে এই প্রশ্নটি উল্লেখ করতে পারেন


1

killall- নাম দ্বারা প্রক্রিয়া হত্যা। killallএক বা একাধিক প্রসেসের সাথে সিলেক্ট প্রেরণের জন্য কমান্ডটি ব্যবহার করুন নির্বাচন মানদণ্ডের মিল, যেমন কমান্ডের নাম, নির্দিষ্ট ব্যবহারকারীর মালিকানাধীন প্রক্রিয়া, বা সমস্ত সিস্টেম-বিস্তৃত প্রক্রিয়া।

pkill- স্টাডআউটে তালিকাভুক্ত না করে প্রতিটি প্রক্রিয়াতে নির্দিষ্ট সিগন্যাল (ডিফল্ট স্বাক্ষর দ্বারা) প্রেরণ করবে। pkillএকাধিক প্রক্রিয়া যেমন সিগন্যাল killallকরতে পারে তবে উন্নত নির্বাচনের মানদণ্ডও ব্যবহার করতে পারে যা এর কোনও সংমিশ্রণকে অন্তর্ভুক্ত করতে পারে:

কমান্ড ইউআইডি প্যারেন্ট টার্মিনাল

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