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


92

শুধু সাধারণ ব্যবহার করার পর kill <some_pid>বহু বছর ধরে ইউনিক্স সিস্টেমে, আমি শিখেছি pkillএকটি ছোট লিনাক্স-কাণ্ডজ্ঞান থেকে সহকর্মীর সহকর্মী 1

আমি শীঘ্রই লিনাক্স-উপায়ে গ্রহণ করেছিলাম, pgrep-আর pkillঅনেক দিন এবং রাত ধরে, ধীর-ডাউন এবং বর্ণের অবস্থার মধ্য দিয়ে ing এই সব ভাল এবং ভাল ছিল।

তবে এখন আর কিছুই দেখছি না killall। কীভাবে তা কেবল উল্লেখ করা যায় killallএবং আমি নিশ্চিত নই যে এটি কোনও ধরণের সমান্তরাল বিকাশ, বা যদি killallতার উত্তরসূরি pkill, বা অন্য কোনও বিষয়।

এটি আরও লক্ষ্যযুক্ত হিসাবে কাজ করে বলে মনে হচ্ছে pkillতবে আমি নিশ্চিত যে আমি কিছু অনুপস্থিত।

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

কথা বলার সময় killall, আমি কমান্ডটি নিয়ে ভাবছি না যে কিছু ইউনিক্স সিস্টেমে (সোলারিস, এআইএক্স,?) সমস্ত ব্যবহারকারীর প্রক্রিয়াটিকে মেরে ফেলবে। আইবিএম এর এআইএক্সের একটি ম্যানপেজ থেকে এই সংস্করণটির বর্ণনা এখানে দেওয়া হয়েছে :

কিলাল কমান্ড আপনার শুরু হওয়া সমস্ত প্রক্রিয়া বাতিল করে, কিলাল প্রক্রিয়া উত্পাদনকারীদের ব্যতীত। এই কমান্ডটি আপনার দ্বারা নিয়ন্ত্রণ করা শেল দ্বারা তৈরি সমস্ত প্রক্রিয়া বাতিল করার একটি সুবিধাজনক উপায় সরবরাহ করে। যখন কোনও রুট ব্যবহারকারী দ্বারা শুরু করা হয়, কিলাল কমান্ড শুরু হওয়া সমস্ত প্রক্রিয়া বাদে সমস্ত বাতিলযোগ্য প্রক্রিয়া বাতিল করে। যদি বেশ কয়েকটি সিগন্যাল নির্দিষ্ট করা থাকে তবে কেবল শেষটি কার্যকর is

1 'সহকর্মী' হ'ল 'সহকর্মী' থেকে বিনামূল্যে আপগ্রেড, তাই সম্ভবত।
2 মূলত আমি ভেবেছিলাম এটি একটি লিনাক্স বা ডেবিয়ান জিনিস, তবে কিছু সূত্র বলছে যে killallলিনাক্সটি বিএসডি-স্বাদযুক্ত ইউনিক্স থেকে এসেছে।

উত্তর:


68

আমি মনে করি আপনি কীল্লকে কীভাবে করতে দেখছেন কারণ ডিফল্টরূপে এটির জন্য সুনির্দিষ্ট প্রক্রিয়াটির নাম প্রয়োজন হয়, অন্যদিকে পিকিল বেসিক প্যাটার্নের সাথে মেলে। সুতরাং, কিল্লাল ব্যবহারকারীদের অন্ধভাবে অনুলিপি করে অনুলিপি করা নিরাপদ।

পিল এবং কিল্ল উভয়েরই পৃথক বিকল্প রয়েছে। প্রসেসের বয়স অনুসারে কিল্লার একটি পতাকা আছে, পিলের একটি প্রদত্ত টিটিটিতে কেবল প্রক্রিয়াগুলি মেরে ফেলার জন্য পতাকা রয়েছে। এ্যাটেস্টের অ্যাড বমিভাব। উভয়ই ভাল নয় , তাদের কেবল আলাদা আলাদা বৈশিষ্ট্য রয়েছে।

আমি তাদের ম্যান পৃষ্ঠাগুলি থেকে দেখতে পাচ্ছি যে কিলালটি psmisc প্যাকেজ থেকে আসে , যার বেশ কয়েকটি প্রক্রিয়া পরিচালনার ইউটিলিটি রয়েছে, তবে উল্লেখযোগ্যভাবে এটি থাকে না ps। এটি প্রোপস প্যাকেজটিতে পিএস, টপ, কিল এবং পিল রয়েছে (অন্যদের মধ্যে)। আমি বাজি ধরতাম প্রোপসটি মূলত পিল ছিল না, তাই psmisc একটি চুলকানি স্ক্র্যাচ করে কিলাল নিয়ে এসেছিল।

Pkill / pgrep man পৃষ্ঠা বলছেন তারা সোলারিস 7. ব্যবস্থা চালু হয়েছে আপনি উল্লেখ হিসাবে, jgbelacqua , সোলারিস এর জন্য killall না ইউটিলিটি psmisc, প্রদান করে এইভাবে সোলারিস সম্ভবত শুধুমাত্র procps প্যাকেজ ছিল। কেউ একটি প্যাটার্ন ম্যাচিং প্রক্রিয়া সরঞ্জাম চাইছিল, এইভাবে pkill এবং pgrep। এটি প্রোপস ডেভ দ্বারা বিকাশিত হয়েছিল বা পরে যুক্ত করা হয়েছে, আমি জানি না। নির্বিশেষে, এটি এটিকে তৈরি করেছে এবং সর্বত্র * নিক্সের অংশে পরিণত হয়েছে।

আরও উত্স:


1
হুম - একটি killallঅন ​​(পুরানো?) সোলারিস সিস্টেম ছিল, তবে এটি অন্যরকম আচরণ করেছে। এটা সবকিছু হত্যা।
belacqua

6
@ মানিশ - এর, এসআইএসভি সিস্টেমে একটি আলাদা কিলাল ছিল।
belacqua

1
@ ডিজেইকিব কিল্ল নিরাপদ হওয়ার বিষয়ে চিন্তাভাবনাটি সঠিক, বা কমপক্ষে এটির জনপ্রিয়তার অনেক কারণ হয়ে দাঁড়াতে পারে।
belacqua

5
@ ম্যানিশ: পিল (কোন হত্যার জন্য) পিড নম্বর প্রয়োজন নেই, না প্রক্রিয়াটির নামও। এটি প্রক্রিয়া নামের প্যাটার ম্যাচ করে।
জাভিয়ের রিভেরা

3
killall is safer for users to blindly copy and paste, আপনি যদি এমন কোনও মেশিনে থাকেন তবে যেখানে কিলল সত্যিই সমস্তকে হত্যা করে। দুর্ভাগ্যজনক যে দুটি পৃথক ইউটিলিটি একই নামের সাথে আসে।
মিথ্যা রায়ান

7

"কিল্লাল" দিয়ে সাবধান থাকুন। কিছু সিস্টেমে (আমি যা ভুলে যাই), কিল্লাল সমস্ত প্রক্রিয়া হত্যা করে। এটি নিঃশব্দে যুক্তি উপেক্ষা করবে এবং আপনার সিস্টেমকে সম্পূর্ণ থামবে।


5
এটি সত্য নয়। কোনও যুক্তি ছাড়াই কিল্লাল কিছুই করবে না, এবং কিল্ল যুক্তিগুলি উপেক্ষা করবে না। kill -9 -1আপনার সিস্টেমকে মেরে ফেলতে killall -9 -1পারে এবং পাশাপাশি হতে পারে। তবে শুধু নয়killall [program]
থমাস ওয়ার্ড

6
এটি মূল প্রশ্নে উল্লিখিত হিসাবে এসআইএসভি সিস্টেমে সত্য।
এ্যাল্যাঙ্ক

3

আপনি যদি / etc / bash_completion সক্রিয় করেন, তার পরে killall <part_of_process_name>এবং ট্যাবটি হিট করেন - চলমান প্রক্রিয়াগুলির তালিকা থেকে স্বয়ংক্রিয়ভাবে প্রক্রিয়াটির নামটি সম্পূর্ণ করে


2
একই স্বতঃসমাপ্তি pgrep / pkill দিয়ে করা হবে। আমি সাধারণত যা করি তা হ'ল pkill plug<tab>ফায়ারফক্সের জন্য ফ্ল্যাশ প্লাগইনকে হত্যা করা যখন আমি জানি যে আমি কিছুক্ষণের জন্য ব্যবহার করতে চাইছি এমন কিছু আমার কাছে নেই তবে এখনও সক্রিয়ভাবে ফায়ারফক্স ব্যবহার করতে চাই। এটি শেলটির একটি ক্রিয়াকলাপ, কিলল এবং পিগ্রিপ / পিকিলের মধ্যে পার্থক্য নয়।
আর্জেজ

1
আমি কোনও পার্থক্য বলিনি - পিআইডি, প্রক্রিয়া নাম এবং ইত্যাদির সন্ধান এড়াতে কেবল একটি দুর্দান্ত বৈশিষ্ট্য
জেট

2

আপনি যদি উভয় প্রোগ্রামের অপশনগুলির দিকে নজর দেন তবে আপনি দেখতে পাবেন যে তারা উভয়ই একই জিনিসটি করে তবে বিভিন্ন উপায়ে।

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

কিলাল পুরো কমান্ড স্ট্রিংয়ে নয়, প্রক্রিয়া নামের (কম) বা ব্যবহারকারীর (ব্যবহারকারী) সাথে মিলবে। আর্গুমেন্টটি একটি সরল স্ট্রিং হিসাবে ব্যবহৃত হয় এবং অবশ্যই এটি পুরো 'কম' মানটির সাথে মিলে যায় (এটি পরিবর্তনের জন্য একটি --regexp বিকল্পও রয়েছে)। কিল্ল-এ ইন্টারেক্টিভ এবং --youtger- এর চেয়ে অপশন রয়েছে, যা পিকেলে নেই।

একটি কিল্লাল 5 এসআইএসভি দিনের থেকে এবং অন্যান্য ইউএনআইএক্স ভেরিয়েন্টগুলিতে পোর্ট করা হয়েছিল (ধারণা করা হয় উবুন্টু প্যাকেজ 'সিসটিলস'-এর অধীনে)। এটি পুরানো ফ্যাশন পদ্ধতিতে আলাদা আচরণ করে। এটি প্রায়শই শাটডাউন বা একক-ব্যবহারকারী মোডে পরিবর্তনের জন্য init স্ক্রিপ্টগুলিতে অভ্যন্তরীণভাবে ব্যবহৃত হত।


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