আমি কখন একটি প্রক্রিয়া -9 হত্যা করা উচিত?


401

আমি দৌড়াতে সর্বদা খুব দ্বিধা বোধ kill -9করি, তবে অন্যান্য প্রশাসকরা প্রায় নিয়মিত এটি করে দেখেন।

আমি বুঝতে পারি যে সম্ভবত একটি বুদ্ধিমান মাঝারি স্থল আছে, তাই:

  1. কখন এবং কেন kill -9ব্যবহার করা উচিত ? কখন এবং কেন নয়?
  2. এটি করার আগে কি চেষ্টা করা উচিত?
  3. "হ্যাঙ্গ" প্রক্রিয়াটি কী ধরণের ডিবাগিং আরও সমস্যার কারণ হতে পারে?

উত্তর:


362

সাধারণত, লক্ষ্য প্রক্রিয়াটিকে নিজের পরে পরিষ্কার করার সুযোগ দেওয়ার জন্য আপনার ( আগে বা বেশিরভাগ সিস্টেমে killসংক্ষিপ্ত) ব্যবহার করা উচিত । (প্রক্রিয়াগুলি ধরতে বা উপেক্ষা করতে পারে না তবে তারা বেশিরভাগ ক্ষেত্রে তা ধরতে পারে )) আপনি যদি প্রক্রিয়াটি কী করে যাচ্ছেন এবং পরিষ্কার করার সুযোগ না দেন তবে এটি দূষিত ফাইলগুলি (বা অন্যান্য রাষ্ট্র) এর চারপাশে ছেড়ে যেতে পারে পুনরায় আরম্ভ করার পরে বুঝতে সক্ষম হবে না।kill -s TERMkill -15kill -9kill -s KILLSIGKILLSIGTERM

strace/ truss, ltraceএবং gdbকোনও আটকে থাকা প্রক্রিয়া কেন আটকে থাকে তা দেখার জন্য সাধারণত ভাল ধারণা। ( truss -uসোলারিসটি বিশেষভাবে সহায়ক; আমি দেখতে পাই ltraceপ্রায়শই অযোগ্য ব্যবহারযোগ্য ফর্ম্যাটে লাইব্রেরি কলগুলিতে যুক্তি উপস্থাপন করি)) সোলারিসে দরকারী- /procভিত্তিক সরঞ্জামও রয়েছে, যার মধ্যে কয়েকটি লিনাক্সে পোর্ট করা হয়েছে। ( pstackপ্রায়শই সহায়ক)।


67
বাধ্যতামূলক কারণটি হ'ল যদি আপনি সিক্কিল প্রেরণের অভ্যাস পান, তবে আপনি যখন এমন কোনও প্রোগ্রামে পৌঁছান যা উদাহরণস্বরূপ, আপনার বা আপনার কোম্পানির জন্য একটি গুরুত্বপূর্ণ ডাটাবেসকে দূষিত করবে, আপনি সত্যিই অনুশোচনা করবেন। kill -9সর্বশেষ-রিসর্ট টার্মিনেটর হিসাবে এর ব্যবহার রয়েছে, সর্বশেষ-রিসর্টের উপর জোর দেওয়া; শেষ-অবলম্বনের আগে অ্যাডমিনগুলি এটি ব্যবহার করে ক) অ্যাডমিন হওয়া খুব ভাল বোঝা যায় না, এবং খ) কোনও প্রোডাকশন সিস্টেমে থাকা উচিত নয়।
আর্জেজ

9
@ মাইকেল এটির মাধ্যমে আরেকটি বিষয়, কখনও কখনও কোনও অ্যাপ্লিকেশনটি সাইনগিট বা সিগসাইনজিভি-র মতো কোনও প্রতিক্রিয়া না জানায় সাইনগুইট বা সিগসাইজিভির মতো সিগন্যাল দিয়ে নিজেকে পরিষ্কার করার পক্ষে সেরা। উদাহরণস্বরূপ, একটি পূর্ণ স্ক্রিন 3-ডি অ্যাপ্লিকেশন বা এমনকি জর্ওগ। সাইনকিউইটি ব্যবহার করে, এটি কোনও কিছু পরিষ্কার করার সুযোগ পাবে না, তবে সেগমেন্টের ত্রুটিটি ঘটবে এই ভেবে ভ্রান্ত হয়েছে এবং এটি অনুভব করবে যে এটি পরিষ্কার এবং প্রস্থান ছাড়া অন্য কোনও বিকল্প নেই।
পেঙ্গুইন 359

12
@ আর্জেজ আপনি কি মনে করেন যে -9 দিয়ে হত্যা করা হলে ডেটাবেষ্ট করে এমন ডেটাবেস ব্যবহার করা একটি ডেটাবেস যা সর্বোপরি কার্যকর? আইরিক, মাইএসকিএল, বিডিবি, পিজি, ইত্যাদি ... -9 এর সাথে নিহত হওয়ার পরে সমস্তই ভাল আচরণ করে।
ধ্রুববার্ড

13
কিল্লাল -9 জাভা ftw
dmourat

23
@ ডিগ্রুবার্ড: আপনার ডিবি গুলির বুলেট-প্রুফ ওয়েস্টের সাথে সজ্জিত হওয়ার কথা এর অর্থ এই নয় যে আপনার প্রয়োজন না হলে আপনার গুলি করা উচিত। যদিও আপনি ঠিক বলেছেন যে এটি আর্কিজের মতো বলে মনে হচ্ছে ততটা ঝুঁকিপূর্ণ নয়, আমি মনে করি তার বক্তব্যটি এখনও এটি ঝুঁকিপূর্ণ এবং এটি একটি শেষ অবলম্বন হওয়া উচিত।
আইকনোক্লাস্ট

228

র‌্যান্ডাল শোয়ার্তজ প্রায়শই তালিকায় "x এর অব্যর্থ ব্যবহার (x)" পোস্ট করতেন। এরকম একটি পোস্ট ছিল kill -9। এর মধ্যে কারণ এবং অনুসরণ করার একটি রেসিপি রয়েছে। এখানে একটি পুনর্গঠিত সংস্করণ (নীচে উদ্ধৃত)।

(উদ্ধৃতি ঘৃণা)

না না না. কিল -9 ব্যবহার করবেন না।

এটি প্রক্রিয়াটি পরিষ্কারভাবে দেখার সুযোগ দেয় না:

1) সকেট সংযোগ বন্ধ

2) টেম্প ফাইল পরিষ্কার করুন

3) এটি দূরে যাচ্ছে যে তার শিশুদের অবহিত

4) এর টার্মিনাল বৈশিষ্ট্যগুলি পুনরায় সেট করুন

এবং তাই এবং আরও অনেক কিছু।

সাধারণত, 15 টি প্রেরণ করুন, এবং দ্বিতীয় বা দুটি অপেক্ষা করুন, এবং যদি এটি কাজ করে না, 2 প্রেরণ করুন, এবং যদি এটি কাজ করে না, 1 প্রেরণ করুন that যদি এটি না হয় তবে প্রোগ্রামটি খারাপভাবে আচরণ করা হচ্ছে বাইনারি সরান!

কিল -9 ব্যবহার করবেন না। শুধু ফুলের পাত্রটি পরিষ্কার করার জন্য কম্বাইন ফলনকারীকে বাইরে আনবেন না।

ইউজনেটের কেবলমাত্র অপ্রয়োজনীয় ব্যবহার,

(.Signature)


12
প্রক্রিয়াটি শেষ হয়ে গেলে অপারেটিং সিস্টেম কোনও উন্মুক্ত ফাইল বর্ণনাকারী (সকেট সহ) বন্ধ করবে না?
ব্রায়ান গর্ডন

3
হ্যা এটা হবে. তবে ধরুন আপনি সংযুক্ত ক্লায়েন্টদের সাথে একটি সার্ভার প্রক্রিয়াটি মেরে ফেলছেন, তবে ক্লায়েন্টরা খেয়াল করবে না যে সার্ভারটি টাইমআউট করার আগে চলে গেছে।
Björn Lindqvist

45
আহ হ্যাঁ পুরাতন "যদি কোনওভাবেই এটি অপূর্ণ থাকে তবে আপনি এটি ব্যবহার করতে বোকা হন" যুক্তি।
টিম্ম্ম

3
অথবা যদি জিজ্ঞাসা করা প্রক্রিয়াটি আপনার সংস্থার উত্পাদন হয় তবে বোকামি ব্যবহার করুন
ওয়ারেন পি

3
যদি কোনও প্রক্রিয়া মারা যায় তবে সকেটটি পিয়ারের কাছে আরএসটি প্রেরণ করবে, যেখানে প্রক্রিয়াটি সকেটে বন্ধ বা শাটডাউন কল করে, সকেটটি এফআইএন প্রেরণ করে। সময়সীমা দরকার নেই। একটি সময়সীমা পরিস্থিতি কেবল তখনই ঘটতে পারে যখন বিদ্যুতটি বাদ দেওয়া হয় বা নেটওয়ার্ক কেবলটি সরিয়ে দেওয়া হয়।
ctrl-alt-delor

78

এটি করা সর্বদা ঠিক করা উচিত kill -9, যেমন বিদ্যুৎ কেবলটি টেনে শাটডাউন করা সর্বদা ঠিক হওয়া উচিত। এটি অসামাজিক হতে পারে এবং কিছুটা পুনরুদ্ধার করতে ছেড়ে দেয়, তবে এটির কাজ করা উচিত, এবং অধৈর্য্যের জন্য একটি শক্তি সরঞ্জাম।

আমি এটি এমন একজন হিসাবে বলছি যিনি প্রথমে স্পষ্টভাবে হত্যা (15) চেষ্টা করবেন, কারণ এটি কোনও প্রোগ্রামকে কিছু পরিষ্কার করার সুযোগ দেয় - সম্ভবত কেবল "লগ করাতে সিগ 15" লগতে লিখিত। তবে একটি হত্যা -9-তে খারাপ ব্যবহার সম্পর্কে কোনও অভিযোগ আমি গ্রহণ করব না।

কারণ: প্রোগ্রামাররা পছন্দ করেন না এমন জিনিসগুলিতে প্রচুর গ্রাহকরা এটি করেন। এলোমেলোভাবে কিল -9 পরীক্ষাটি একটি ভাল এবং নিখরচায় পরীক্ষার দৃশ্য এবং যদি আপনার সিস্টেম এটি পরিচালনা না করে তবে আপনার সিস্টেমটি নষ্ট হয়ে গেছে।


2
"র্যান্ডম কিল -9" এর জন্য আপনি কীভাবে পরীক্ষা করেন? যখন আপনি কিল -9 পাবেন, আপনি শেষ এবং শেষ করেছেন।
কারেল বালেক

18
@ কারেল: আপনার সিস্টেমটি পরে পুনরুদ্ধার করতে পারে কিনা তা পরীক্ষা করে দেখুন এবং সিগ্কিলের সময় প্রক্রিয়াধীন যে কোনও ম্যাঙ্গলেড লেনদেন পরিষ্কার করেছিলেন।
টাদিউস এ। কাদুউবস্কি

7
এটা একটা করতে ঠিক আছে নয় kill -9শুধু এটা মত প্লাগ টেনে ওকে নয়। অবশ্যই এমন পরিস্থিতি রয়েছে যেখানে আপনার কোনও পছন্দ নেই, এটি একটি শেষ অবলম্বন কর্ম হওয়া উচিত। অবশ্যই, পাওয়ার ক্যাবলটি টানতে বা kill -9অ্যাপ্লিকেশন বা ওএসকে যথাযথভাবে পুনরায় চালু করতে বাধা দেওয়ার মতো বিরূপ প্রভাব দেখা উচিত নয়, তবে ছিটেফোঁটা হয় এবং প্রস্তাবিত উপায়গুলি ব্যবহার করে ( kill [-15]) বা নিয়মিত শাটডাউন ঘটতে পারে এমন জগাখিচুড়ি এড়াতে সহায়তা করে আপনি নিয়মিত প্রোগ্রাম এবং ওএসগুলিকে সেভাবে বাধা দিন। যে কোনও ক্ষেত্রে, কোডের দৃust়তা নির্বিশেষে ডেটা হারানোর ঝুঁকি সর্বদা থাকে।
jlliagre

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

2
@ জেরিক তাদের অবশ্যই হওয়া উচিত তবে সমস্যাটি কিছু লোকেরা সেই উত্তরটিকে পরিস্থিতি এবং পরিবেশ যাই হোক না কেন "হত্যার লাইসেন্স -9" হিসাবে গ্রহণ করবে। এটি একটি দায়িত্বজ্ঞানহীন মনোভাব।
jlliagre

39

আমি ডিশ ওয়াশারে রান্নাঘরের সরঞ্জামগুলি যেভাবে নিক্ষেপ করি সেভাবেই আমি কিল -9 ব্যবহার করি: যদি কোনও রান্নাঘর বাস্তবায়ন ডিশ ওয়াশারের মাধ্যমে নষ্ট হয়ে যায় তবে আমি তা চাই না।

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

কারণ বাস্তব বিশ্বের জিনিস যে কোনও সময় যে কোনও কারণে নিচে যেতে পারে।

লোকেদের এমন সফ্টওয়্যার লেখা উচিত যা ক্রাশগুলির জন্য সহনীয়। বিশেষত সার্ভারগুলিতে। আপনার কীভাবে এমন সফ্টওয়্যার ডিজাইন করতে হবে যা ধরে নিয়েছে যে জিনিসগুলি ভেঙে যাবে, ক্রাশ হবে ইত্যাদি etc.

ডেস্কটপ সফ্টওয়্যার জন্য একই। আমি যখন আমার ব্রাউজারটি বন্ধ করতে চাই তখন সাধারণত এজেএসএস বন্ধ হয়ে যায়। নেই কিছুই নিজের ব্রাউজার প্রয়োজন করতে যে সেকেন্ডের সবচেয়ে দুয়েকের বেশি নিতে হবে। আমি যখন এটি বন্ধ করতে বলি তা অবিলম্বে এটি পরিচালনা করা উচিত। যখন এটি না হয়, ভাল, তখন আমরা কিল -9 টানুন এবং এটি তৈরি করি।


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

3
যে ডেটাবেস যে কোনও সময় মারা যায় না তা সঠিকভাবে নির্ভরযোগ্য ডাটাবেস নয়। আপনার যদি ধারাবাহিকতার প্রয়োজন হয় তবে এটি একটি দুর্দান্ত প্রাথমিক প্রয়োজন। ক্লায়েন্টদের ক্ষেত্রে: যদি সংযোগটি বিচ্ছিন্ন হয়ে যায় তারা যদি হাইওয়াইর এবং দূষিত ডেটাগুলি নিয়ে যায় তবে সেগুলিও খারাপভাবে ডিজাইন করা হয়েছে। পরিষেবার ক্ষতি হ্রাস করার উপায় হ'ল অপ্রয়োজনীয়তা এবং স্বয়ংক্রিয় ব্যর্থতা / পুনরায় চেষ্টা কৌশল। সাধারণত সিস্টেমের বেশিরভাগ ক্ষেত্রে দ্রুত ব্যর্থ হওয়া পুনরুদ্ধার করার চেষ্টা করা ভাল।
borud

4
@ বারড এটি নিখুঁতভাবে লেখা সফ্টওয়্যার নাও হতে পারে তবে এটি সফ্টওয়্যারটি লোকেরা সর্বদা ব্যবহার করে। হঠাৎ ব্যাঘাত থেকে সর্বদা নিখুঁতভাবে পুনরুদ্ধার করার জন্য নিখুঁতভাবে লেখা সফ্টওয়্যার বেছে নিতে সক্ষম হওয়ার বিলাসিতা কি সিস্টেম প্রশাসকদের রয়েছে? বেশি না. ব্যক্তিগতভাবে আমি শাটডাউন স্ক্রিপ্টগুলি ব্যবহার করি এবং এর মাধ্যমে প্রক্রিয়াগুলি শুরু / বন্ধ করি। যদি তারা শাটডাউন স্ক্রিপ্ট (যা প্রক্রিয়াটির জন্য সঠিক সংকেত দেয়) তে সাড়া না দেয়, আমি -9 কে হত্যা করি।
স্টিভ শেথার

2
সরঞ্জামগুলির ক্ষেত্রে বেসিক স্টাফ এবং আরও জটিল থালা রান্না করার মধ্যে কোনও পার্থক্য নেই। পার্থক্য হ'ল রান্নার। (তবে, আমার মতো রান্নার জন্য আপনি যদি বেশি সময় ব্যয় করেন তবে আপনি বুঝতে পারবেন যে রান্নাঘরের সরঞ্জামগুলিতে দৃust়তা হ'ল ন্যূনতম প্রয়োজনীয়তা এবং গ্রাহকদের কাছে রান্নাঘরের সরবরাহ বিক্রয়কারী বেশিরভাগ লোক দুর্দান্ত সরঞ্জাম থেকে কোনও খারাপ সরঞ্জাম জানেন না))
বোরুদ

1
কাজেই সঠিকভাবে কাজ করা কঠিন বলে আপনি লোককে ম্লান হতে উত্সাহিত করেন? অধিক সংখ্যক সফ্টওয়্যার অপ্রচলিত পরিবেশে চালিত হয়। আপনি যদি এমন সফ্টওয়্যার লিখেন যা সঠিকভাবে বন্ধ না হয়ে থাকলে উদ্বেগজনক হয়ে ওঠে, আপনাকে একটি বিকাশকারী হিসাবে নিয়োগ দেওয়ার জন্য নিয়োগকর্তাদের বোঝাতে একটি কঠিন সময় কাটাতে হবে।
বোরুড

10

অন্য সমস্ত উত্তরে উল্লেখ করা হয়নি এমন একটি মামলা যেখানে kill -9কোনও প্রক্রিয়া কাজ করে <defunct>এবং হত্যা করা যায় না:

যার পিতা-মাতা দীক্ষাপ্রাপ্ত একটি প্রক্রিয়া কীভাবে আমি হত্যা করতে পারি?

কোনও প্রক্রিয়াটির জন্য কী অকার্যকর এবং কেন এটি মারা যায় না?

সুতরাং তার পিতামাতা কী তা দেখার জন্য kill -9কোনও <defunct>প্রক্রিয়া চালানোর আগে ps -efএবং তার পিতামাতার উপর -15(টিআরএম) বা -2(আইএনটি) এবং শেষ পর্যন্ত -9(কিল) চেষ্টা করার চেষ্টা করুন।

দ্রষ্টব্য: কি ps -efকরে

পরে সম্পাদনা এবং সাবধানতা: প্রক্রিয়াগুলি, তাদের পিতামাতা বা তাদের বাচ্চাদের হত্যা করার সময় সাবধানতার সাথে এগিয়ে যান, কারণ তারা ফাইলগুলি খোলার বা ক্ষতিগ্রস্থ, সংযোগগুলি অসম্পূর্ণ, ডেটাবেসগুলিকে ক্ষতিগ্রস্থ করতে পারে, যদি না আপনি জানেন যে kill -9প্রক্রিয়াটির জন্য কী করা হয়, কেবলমাত্র শেষ সিদ্ধান্ত হিসাবে এটি ব্যবহার করুন , এবং আপনার যদি কিল চালাতে হয় তবে ব্যবহারের আগে উপরে উল্লিখিত সিগন্যালগুলি ব্যবহার করুন-9 (KILL)


6

কখনই না a kill -9 1। মাউন্ট` এর মতো নির্দিষ্ট প্রক্রিয়াগুলিতে কিল করা এড়ানো উচিত ` যখন আমাকে অনেকগুলি প্রসেস হত্যা করতে হবে (উদাহরণস্বরূপ বলুন যে একটি এক্স সেশন হ্যাং হয়ে যায় এবং আমাকে একটি নির্দিষ্ট ব্যবহারকারীর সমস্ত প্রক্রিয়া মেরে ফেলতে হয়), আমি প্রক্রিয়াগুলির ক্রমটিকে বিপরীত করি। উদাহরণ স্বরূপ:

ps -ef|remove all processes not matching a certain criteria| awk '{print $2}'|ruby -e '$A=stdin.readlines; A.reverse.each{|a| puts "kill -9 #{a}"}'|bash

মনে রাখবেন যে killকোনও প্রক্রিয়া বন্ধ করে দেয় এবং এর সংস্থানগুলি ছেড়ে দেয় না। এটি যা করে তা হ'ল প্রক্রিয়াটিতে একটি সিগ্কিল সংকেত পাঠানো; আপনি ঝুলিয়ে দেওয়া একটি প্রক্রিয়া দিয়ে শেষ করতে পারেন।


1
ডাউনভোটটি ছিল অন্য কেউ। তবে কোন রিসোর্স প্রকাশ হয় না? আপনি কি কেবল বোঝাতে চেয়েছেন যে প্রক্রিয়াটি তার সাধারণ পরিচ্ছন্নতা সম্পাদন করতে পারে না? ফাইল লক, সেমোফোর ইত্যাদির কী হবে? তুমি কি বিস্তারিত বলতে পারো?
মাইকেল

দেখে মনে হচ্ছে সিসভি ভাগ করে নেওয়া মেমরি এবং সেমফোরগুলি কমপক্ষে পরিষ্কার করতে হবে। সংরক্ষণাগারগুলি.পোস্টগ্রেসক্ল.আর.এল.পিপসকিএল_জেনারাল
2006-10

8
এই উত্তর অংশ বিভ্রান্তিকর এবং অংশ ভুল। kill -9 1সর্বাধিক unices অধীনে কেবল উপেক্ষা করা হয়। এড়াতে কোনও প্রয়োজন নেই kill -9জন্য mount, কিন্তু এটা কোনো লাভ পারেন। আপনি "প্রক্রিয়াগুলির ক্রমটি বিপরীত" দ্বারা কী বোঝাতে চেয়েছেন তা আমি জানি না। kill -9অভিযোগ করার সুযোগ না দিয়ে কোনও প্রক্রিয়া (যেমন, হত্যা) বন্ধ করে দেয়, তবে প্রক্রিয়াটি একটি অবিঘ্নিত ব্যবস্থা কল এলে তাত্ক্ষণিক হত্যাকাণ্ড ঘটবে না । দিয়ে একটি প্রক্রিয়া হত্যা kill -9বেশিরভাগ সংস্থান মুক্তি দেয়, কিন্তু সব নয়
গিলস

5

উইল-নিলি হত্যার প্রক্রিয়াগুলি কোনও মসৃণ পদক্ষেপ নয়: ডেটাগুলি হারাতে পারে, খারাপভাবে নকশাকৃত অ্যাপ্লিকেশনগুলি সূক্ষ্ম উপায়ে নিজেকে ভেঙে ফেলতে পারে যা পুনরায় ইনস্টল না করে ফিক্স করা যায় না .. তবে এটি সম্পূর্ণরূপে কোনটি কী এবং কোনটি নিরাপদ নয় তা জানার উপর নির্ভর করে প্রদত্ত পরিস্থিতি এবং কি ঝুঁকি হতে পারে। ব্যবহারকারীর একটি প্রক্রিয়া কী, বা কী হওয়া উচিত এবং এর সীমাবদ্ধতাগুলি কী (ডিস্ক আইওপিএস, আরএসএস / সোয়াপ) রয়েছে তার কিছু ধারণা থাকতে হবে এবং দীর্ঘ-চলমান প্রক্রিয়াতে কত সময় লাগবে তা অনুমান করতে সক্ষম হতে হবে (একটি ফাইল অনুলিপি বলুন, এমপি 3 রেনকোডিং, ইমেল স্থানান্তর, ব্যাকআপ, [এখানে আপনার প্রিয় টাইমসিংক])

তদুপরি, SIGKILLএকটি পিডে প্রেরণ এটি হত্যার কোনও গ্যারান্টি নয়। যদি এটি কোনও সিস্টেমে আটকে থাকে বা ইতিমধ্যে জম্বিযুক্ত ( Zইন ps) হয় তবে এটি জম্বিড অবিরত হতে পারে। এটি প্রায়শই Z^ এর দীর্ঘস্থায়ী প্রক্রিয়া এবং এর bgচেষ্টা করার আগে ভুলে যাওয়ার ঘটনা ঘটে kill -9। একটি সাধারণ fgস্টিডিন / স্টডআউট পুনরায় সংযুক্ত করবে এবং সম্ভবত প্রক্রিয়াটি অবরোধ মুক্ত করবে, সাধারণত তারপরে প্রক্রিয়াটি সমাপ্ত হওয়ার পরে। এটি অন্য কোথাও বা কার্নেল অচলাবস্থার অন্য কোনও আকারে আটকে থাকলে কেবল একটি রিবুট প্রক্রিয়াটি সরাতে সক্ষম হতে পারে। ( SIGKILLকার্নেল দ্বারা প্রক্রিয়াজাত করার পরে জম্বি প্রক্রিয়াগুলি ইতিমধ্যে মারা গেছে (আর কোনও ইউজারল্যান্ড কোড চলবে না), প্রক্রিয়াটি শেষ না হওয়ার জন্য সাধারণত কার্নেলের কারণ থাকে (সিস্কেলের অপেক্ষায় "অবরুদ্ধ" থাকার মতো))) process

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

বোনাস অশুচি: এর kill -9 -1চেয়ে কিছুটা ক্ষতিকারক kill -9 1(যদি আপনি কোনও স্ট্রোক-অ-অ-গুরুত্বপূর্ণ ভিএম-তে কী ঘটে থাকে তা দেখতে না চাইলে মূল হিসাবে কাজ করবেন না)


3

আপনি kill -9সাধারণত কোনও প্রক্রিয়া করতে চান না কেন

মতে man 7 signal:

সিগন্যালগুলি সিগ্কিল এবং সিগস্টপ ধরা, আটকাতে বা উপেক্ষা করা যাবে না।

এর অর্থ হ'ল যে অ্যাপ্লিকেশনটি এই সংকেতগুলির মধ্যে একটিও গ্রহণ করে তারা কোনও শাটডাউন আচরণ করতে "ধরতে" পারে না।

kill -9কোনও প্রক্রিয়া চালানোর আগে আপনার কী করা উচিত

প্রক্রিয়াটিতে সংকেত প্রেরণের আগে আপনাকে অবশ্যই নিশ্চিত করা উচিত যে আপনি:

  1. নিশ্চিত করুন যে প্রক্রিয়াটি ব্যস্ত নয় (যেমন "কাজ" করছেন); kill -9প্রক্রিয়াটিতে একটি প্রেরণে মূলত এই ডেটা হারাতে হবে।
  2. প্রক্রিয়াটি যদি কোনও অ-প্রতিক্রিয়াশীল ডেটাবেস হয় তা নিশ্চিত করুন যে এটি প্রথমে এর ক্যাশেগুলি ফ্লাশ করেছে। কিছু ডেটাবেসগুলি তার ক্যাশে ফ্লাশ করার জন্য বাধ্যতামূলকভাবে প্রক্রিয়াটিতে অন্যান্য সংকেত প্রেরণকে সমর্থন করে।

3

আমি একটি স্ক্রিপ্ট তৈরি করেছি যা এই সমস্যাটি স্বয়ংক্রিয় করতে সহায়তা করে।

এটি স্ট্যাকওভারফ্লোতে খুব অনুরূপ একটি প্রশ্নের আমার সম্পূর্ণ উত্তর 2 এর উপর ভিত্তি করে ।

আপনি সেখানে সমস্ত ব্যাখ্যা পড়তে পারেন। সংক্ষিপ্তসার হিসাবে আমি কেবল SIGTERMএবং SIGKILL, বা এমনকি SIGTERM, SIGINTএবং সুপারিশ করব SIGKILL। তবে আমি সম্পূর্ণ উত্তরে আরও বিকল্প দিচ্ছি।

দয়া করে, গিথুব সংগ্রহশালা থেকে হত্যার জন্য নিখরচায় নিখরচায় 1

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