কিল্লার জন্য ম্যান পৃষ্ঠা থেকে
killall নির্দিষ্ট কমান্ডগুলির মধ্যে যে কোনও চলমান সমস্ত প্রক্রিয়াতে সংকেত প্রেরণ করে। যদি কোনও সিগন্যালের নাম নির্দিষ্ট না করা থাকে তবে SIGTERM প্রেরণ করা হয়।
আপনি যখন এটি করেন kill -9
, আপনি সিগ্কিল সিগন্যাল প্রেরণ করছেন। আপনি যদি কিল্লার সাথে একটি সাইন কিল পাঠাতে চান, আপনার প্রয়োজন
killall -s SIGKILL <PROCESSNAME>
সিগ্কিল এবং সিগমেন্টের মধ্যে পার্থক্যের একটি ভাল ব্যাখ্যা (এবং কেন আপনাকে প্রথমে সাইনটার চেষ্টা করা উচিত)
Http://rackerhacker.com/2010/03/18/sigterm-vs-sigkill/ থেকে
ইউনিক্স সিস্টেমে কিল ব্যবহার করে প্রক্রিয়াগুলিতে সিগন্যাল প্রেরণ করা বেশিরভাগ সিস্টেম প্রশাসকের কাছে নতুন বিষয় নয়, তবে আমাকে হত্যা এবং হত্যা -9 এর মধ্যে পার্থক্য সম্পর্কে অনেকবার জিজ্ঞাসা করা হয়েছে।
যে কোনও সময় আপনি কোনও প্রক্রিয়াতে কিল ব্যবহার করেন, আপনি প্রকৃতপক্ষে প্রক্রিয়াটি একটি সংকেত প্রেরণ করছেন (প্রায় সব পরিস্থিতিতে - আমি শীঘ্রই এটিতে প্রবেশ করব)। স্ট্যান্ডার্ড সি অ্যাপ্লিকেশনগুলির একটি শিরোলেখ ফাইল রয়েছে যা কোনও নির্দিষ্ট সিগন্যাল পেলে প্রক্রিয়াটি অনুসরণ করা উচিত এমন পদক্ষেপগুলি ধারণ করে। হত্যার জন্য ম্যান পৃষ্ঠাটি পরীক্ষা করে আপনি আপনার সিস্টেমে উপলব্ধ সিগন্যালের একটি সম্পূর্ণ তালিকা পেতে পারেন।
এই মত একটি আদেশ বিবেচনা করুন:
kill 2563
এটি প্রক্রিয়াতে SIGTERM নামে একটি সংকেত প্রেরণ করবে। প্রক্রিয়াটি বিজ্ঞপ্তিটি পাওয়ার পরে, কয়েকটি আলাদা জিনিস ঘটতে পারে:
- প্রক্রিয়া অবিলম্বে বন্ধ হতে পারে
- প্রক্রিয়া সংস্থানগুলি সাফ করার পরে অল্প বিলম্বের পরে থামতে পারে
- প্রক্রিয়াটি অনির্দিষ্টকালের জন্য চলতে পারে
অ্যাপ্লিকেশনটি একবার নির্ধারিত হয়ে যায় যে একবার সিআইজিআরটিএম পাওয়ার পরে এটি কী করতে চায়। যদিও বেশিরভাগ অ্যাপ্লিকেশনগুলি তাদের সংস্থানগুলি পরিষ্কার করে বন্ধ করবে, কিছু নাও পারে may কোনও অ্যাপ্লিকেশন একটি সিগন্যরটারাম পেলে সম্পূর্ণ আলাদা কিছু করার জন্য কনফিগার করা যেতে পারে। এছাড়াও, যদি অ্যাপ্লিকেশনটি খারাপ অবস্থায় থাকে যেমন ডিস্ক I / O এর জন্য অপেক্ষা করা হয় তবে এটি প্রেরিত সিগন্যালটিতে কাজ করতে সক্ষম নাও হতে পারে।
যখন কোনও অ্যাপ্লিকেশন কোনও সাইনটারমে সাড়া না দেয় তখন বেশিরভাগ সিস্টেম প্রশাসকরা সাধারণত আরও আকস্মিক সংকেত অবলম্বন করবেন:
kill -9 2563
-9 কিল কমান্ডকে বলে যে আপনি # 9 সিগন্যাল প্রেরণ করতে চান, যাকে সিগ্কিল বলা হয়। এর মতো একটি নাম সহ, এটি সুস্পষ্ট যে এই সংকেতটি আরও কিছুটা ওজন বহন করে।
যদিও SIGKILL একই সংকেত শিরোনাম ফাইলে SIGTERM হিসাবে সংজ্ঞায়িত করা হয়েছে, এটি প্রক্রিয়া দ্বারা এড়ানো যাবে না। প্রকৃতপক্ষে, প্রক্রিয়াটি এমনকি সিগন্যাল সিগন্যাল কার্নেল ইনিমে চলে যাওয়ার পরে সিগ্কিল সিগন্যাল সম্পর্কে সচেতন হয় না। এই মুহুর্তে, init প্রক্রিয়াটি বন্ধ করবে। প্রক্রিয়াটি কখনই সিগন্যাল ধরার এবং এটিতে অভিনয়ের সুযোগ পায় না।
তবে, কার্নেল কিছু পরিস্থিতিতে সফলভাবে প্রক্রিয়াটি মারতে সক্ষম না হতে পারে। প্রক্রিয়াটি যদি নেটওয়ার্ক বা ডিস্ক I / O এর জন্য অপেক্ষা করে থাকে তবে কার্নেল এটি থামাতে সক্ষম হবে না। নিরবচ্ছিন্ন ঘুমের মধ্যে ধরা পড়ে জুম্বো প্রক্রিয়া এবং প্রক্রিয়াগুলি কার্নেল দ্বারা বন্ধ করা যায় না। সিস্টেম থেকে এই প্রক্রিয়াগুলি সাফ করার জন্য একটি রিবুট প্রয়োজন।
আপনি যখন বজ্র প্রসেসগুলিতে কিল্ল (সিগিটার) প্রেরণ করেছেন, আপনি সেই প্রক্রিয়াগুলি বন্ধ করার জন্য অনুরোধ করেছেন। এই প্রসেসগুলির মধ্যে কিছু সঠিকভাবে কাজ করছে না (সম্ভবত আপনাকে প্রথমে তাদের হত্যা করার প্রয়োজন কেন) তাই তারা সাইনটারম সংকেতটিতে কাজ করতে পারেনি।