আপনি যখন কোনও প্রক্রিয়া ভাল করার চেষ্টা করেন, তখন "কিল" এর জন্য আপনার কোন বিকল্প ব্যবহার করা উচিত?


26

আমি লোকদের কাছ থেকে প্রচুর মিশ্র বার্তা পাচ্ছি, এবং ভাবছিলাম যে এটি কী আপনি ব্যবহার করেন তাতে আসলেই কোনও পার্থক্য নেই।

kill 'x'
killall 'x'
kill -9 'x'

এগুলি এমন কিছু বিকল্প যা আমাকে এখনও অবধি ব্যবহার করতে বলা হয়েছে, তবে কিছু লোক বলে যে কিল -9 কেবলমাত্র ওভারকিল, নিজের হাতে খুন কাজ করে না, ইত্যাদি say

সবেমাত্র একটি প্রক্রিয়া সমাপ্ত করার (এবং এভাবে তার রাজ্যটিও) সবচেয়ে স্ট্যান্ডার্ড ক্ষেত্রে ব্যবহার করা উচিত যার বিষয়ে কারও কি কোনও পরামর্শ রয়েছে?

[সম্পাদনা] আপনি যখন আপনার প্রক্রিয়াটির সম্পাদন বন্ধ করতে চান তখন কী ব্যবহার করবেন তা আমি সন্ধান করছি যাতে আপনি নতুন থেকে চালাতে পারেন, শুরু থেকেই টাটকা


1
আরও দেখুন UUK9 ফর্ম চিঠি যা অপব্যবহারের করার সময় সাবধানতা অবলম্বন SIGKILL
jw013

1
সমস্ত সংখ্যার সাথে তাদের সংখ্যার সংকেত তালিকাবদ্ধ kill -lকরতে : এবং সংখ্যার সাথে সম্পর্কিত সংকেত নামের সাথে অনুবাদ করতে যেমন kill -l 9ফিরে আসবে KILL

উত্তর:


24

এমন অনেকগুলি সংকেত রয়েছে যার প্রক্রিয়াটি শেষ করতে ডিফল্ট স্বভাব। চূড়ান্ত সমাপ্তি সংকেত হ'ল সিগ্কিল যেহেতু এটি পরিচালনা করা যায় না এবং প্রক্রিয়াটি মারা যাওয়া ছাড়া কোনও উপায় নেই। তবে এর অর্থ হ'ল আপনি যদি এটি প্রেরণ করেন তবে প্রক্রিয়াটি পরিষ্কার করার সুযোগ থেকে বঞ্চিত হয়। অতএব, ভাল আচরণের জন্য সিগট্রামের মতো একটি সিগন্যাল প্রেরণ করা প্রয়োজন যা প্রথমে পরিচালনা করা যেতে পারে এবং কিছুক্ষণ পরে প্রক্রিয়াটি সিক্কিল প্রেরণ না করে তবেই প্রস্থানটি বের না হয়।

মনে রাখবেন যে সাইন ইন এবং সাইনকিউইট স্বেচ্ছাসেবী প্রক্রিয়া সমাপ্তির জন্য ভাল প্রার্থী নয়। এগুলি টার্মিনালের কীবোর্ড থেকে উত্পন্ন করার কারণে, অনেক অ্যাপ্লিকেশন এগুলি বিশেষ উদ্দেশ্যে ব্যবহার করে। উদাহরণস্বরূপ, পাইথন ইন্টারপ্রেটার KeyboardInterruptব্যতিক্রম উত্পন্ন করতে সিগিন্ট ব্যবহার করে (এছাড়াও ইন্টারেক্টিভ পাইথন সেশনে যেখানে এটি প্রম্পটে ফিরে আসে) এবং জেভিএম স্ট্যাক ট্রেসগুলি ফেলে দেওয়ার জন্য সাইনকিউটি ব্যবহার করে। সাইন ইন এবং সাইনকিউটি বেশিরভাগ স্ট্যান্ডার্ড কমান্ড-লাইন ইউটিলিটির জন্য findবা এর মতো কার্যকর থাকে cat

সিস্টেম শাটডাউন করার সময়, বেশিরভাগ ইউনিক্স এবং লিনাক্স সিস্টেমগুলি সমস্ত প্রক্রিয়াতে সাইনটারম প্রেরণ করে, তারপরে 5 সেকেন্ড অপেক্ষা করে, তারপরে সিগ্কিল হয়। এটি একটি স্বেচ্ছাসেবী প্রক্রিয়াটি নিরাপদে বন্ধ করার প্রস্তাবিত উপায়।

আরও মনে রাখবেন যে এমনকি প্রক্রিয়াটি না উঠা পর্যন্ত সিগ্কিল একটি নিরবচ্ছিন্ন অপেক্ষা করে থাকা কোনও প্রক্রিয়া বন্ধ করতে পারে না।


1
দুর্দান্ত উত্তর। আপনার কি kill -SIGTERM $pid; sleep 5; kill -SIGKILL $pid;সুপারিশের জন্য একটি রেফারেন্স আছে ?
l0b0

+1 ধরণের উত্তর। এবং সিগআপ সম্পর্কে কী?
আলাইস মাহডাল

2
@ অ্যালিসমহদল: SIGHUPসেই দিন থেকে আসে যখন ডায়াল-আপ লাইনগুলি সাধারণ ছিল। সেই সঙ্কেতটি প্রেরণ করা হয়েছিল যে লাইনটি স্থির হয়ে গেছে। পরে, যখন কম দেখা যায় SIGHUPতখন কখনও কখনও ডায়মনগুলি প্রক্রিয়াটি পুনরায় আরম্ভ না করে কনফিগার ফাইলটি পুনরায় পড়তে ব্যবহৃত হত। এই আধুনিক সময়ে SIGHUPখুব কমই ব্যবহৃত হয়। অনেকগুলি ডেমনের নিজস্ব পুনর্নির্মাণের নিজস্ব পদ্ধতি থাকবে (অর্থাত্, apachectl gracefulবা rndc reconfig। এমন জিনিসগুলির জন্য যা [init.d|smf|upstart|launchd]সম্ভব হয় সেখানে নিয়ন্ত্রণ ব্যবহার করা উচিত নয়
বাহামাত

13

আপনার সৌম্যর সাথে শুরু করা উচিত এবং সেখান থেকে বাড়ানো উচিত। এর অর্থ, সাইন ইন, সিগনেটার, সাইনকিট, সিগ্কিল। যদিও বেশিরভাগ লোকেরা স্বাক্ষর এবং সাইনকুইট এড়িয়ে চলে।


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