যদি 'কিল -9' কাজ না করে?


467

আমার একটি প্রক্রিয়া আছে যা দিয়ে আমি হত্যা করতে পারি না kill -9 <pid>। এ জাতীয় ক্ষেত্রে সমস্যা কী, বিশেষত যেহেতু আমি সেই প্রক্রিয়ার মালিক। আমি ভেবেছিলাম যে কিছুই এই killবিকল্প এড়াতে পারে না ।

উত্তর:


561

kill -9( সিগ্কিল ) সর্বদা কাজ করে, তবে আপনার প্রক্রিয়াটি মেরে ফেলার অনুমতি থাকলে। মূলত হয় প্রক্রিয়াটি আপনার দ্বারা শুরু করা উচিত এবং সেটুয়েড বা সেটগিড হওয়া উচিত নয়, বা আপনাকে অবশ্যই মূল হতে হবে। একটি ব্যতিক্রম আছে: এমনকি রুট পিআইডি 1 ( initপ্রক্রিয়া) এ মারাত্মক সংকেত পাঠাতে পারে না ।

তবে অবিলম্বেkill -9 কাজ করার গ্যারান্টি নেই । সিগ্কিল সহ সমস্ত সিগন্যাল সংশ্লেষজনকভাবে বিতরণ করা হয়েছে: কার্নেল তাদের বিতরণ করতে সময় নিতে পারে। সাধারণত, সিগন্যাল সরবরাহ করতে বেশিরভাগ কয়েকটি মাইক্রোসেকেন্ড লাগে, সময় স্লাইস পেতে লক্ষ্যটির জন্য ঠিক সময় লাগে। যাইহোক, যদি লক্ষ্যটি সিগন্যালটিকে অবরুদ্ধ করে ফেলেছে , লক্ষ্যটি আনব্লক না করা অবধি সিগন্যালটি সারিবদ্ধ থাকবে।

সাধারণত, প্রক্রিয়াগুলি SIGKILL- কে ব্লক করতে পারে না। কার্নেল কোড করতে পারে এবং প্রসেসগুলি যখন তারা কল কল করে কার্নেল কোড কার্যকর করে । সিস্টেম কলটিতে বাধা দেওয়ার পরে কার্নেল কোডটি সমস্ত সংকেতকে অবরুদ্ধ করে কার্নেলের কোথাও কোথাও বা আরও সাধারণভাবে কার্নেলের আক্রমণকারীকে লঙ্ঘন করার কারণে খারাপভাবে গঠিত ডেটা কাঠামো তৈরি হতে পারে। সুতরাং যদি (কোনও ত্রুটি বা ভুল নকশার কারণে) কোনও সিস্টেম কল অনির্দিষ্টকালের জন্য ব্লক করে, কার্যকরভাবে প্রক্রিয়াটি মারার কোনও উপায় নেই be (তবে প্রক্রিয়াটি যদি কখনও সিস্টেম কলটি সম্পন্ন করে তবে হত্যা করা হবে ))

একটি সিস্টেম কল এ ব্লক করা একটি প্রক্রিয়া নিরবচ্ছিন্ন ঘুমেpsবা topহবে কমান্ড (অধিকাংশ unices দিকে) রাষ্ট্র এটিকে দেখাতে D(মূলত "জন্য isk", আমি মনে করি)।

দীর্ঘ বিরামহীন ঘুমের একটি শাস্ত্রীয় কেসটি যখন সার্ভার সাড়া দিচ্ছে না তখন এনএফএসের মাধ্যমে ফাইল অ্যাক্সেস করা প্রক্রিয়া হয়; আধুনিক প্রয়োগগুলি নিরবচ্ছিন্ন ঘুম চাপিয়ে দেয় না (যেমন লিনাক্সের অধীনে intrমাউন্ট অপশনটি সিগন্যালটিকে এনএফএস ফাইল অ্যাক্সেসগুলিতে বাধা দিতে দেয়)।

আপনি কখনও কখনও হিসাবে চিহ্নিত এন্ট্রি দেখতে পারেন Z(অথবা Hলিনাক্স অধীনে, আমি জানি না কি পার্থক্য হয়) psবা topআউটপুট। এগুলি প্রযুক্তিগতভাবে প্রক্রিয়া নয়, এগুলি জম্বি প্রক্রিয়া, যা প্রক্রিয়া সারণিতে প্রবেশের চেয়ে বেশি কিছু নয়, আশেপাশে রাখা হয় যাতে পিতামাতার প্রক্রিয়াটি তার সন্তানের মৃত্যুর বিষয়ে অবহিত হতে পারে। যখন পিতামাতার প্রক্রিয়াটি মনোযোগ দেয় (বা মারা যায়) তখন তারা চলে যাবে ।


92
আপনার উত্তরটি স্ববিরোধী বলে মনে হচ্ছে। আপনি সিক্কিলকে সর্বদা কাজ করতে বলা শুরু করে নিরবচ্ছিন্ন ঘুমের প্রসঙ্গটি উল্লেখ করে শেষ করুন, যেখানে সিংকিল কার্নেল বন্ধ করার বাইরে কখনও কাজ করতে পারে না। এছাড়াও দুটি মামলা রয়েছে যেখানে সিক্কিল কাজ করে না। জম্বিগুলির সাথে স্পষ্টতই যেমন আপনি ইতিমধ্যে মৃত প্রক্রিয়া এবং ডিআইডি দিয়ে হত্যা করতে পারবেন না, যা নকশার সাহায্যে সিগিলের সিগন্যালগুলি উপেক্ষা করছে।
jlliagre

41
@ জেলিয়াগ্র্রে: একটি জম্বি হত্যার কোনও অর্থ নেই, এটি শুরু করা বেঁচে নেই। আর interruptible ঘুমের মধ্যে একটি প্রক্রিয়া হত্যা করে কাজ, এটা শুধু অ্যাসিঙ্ক্রোনাস (অন্যান্য সংকেত হিসাবে)। আমি আমার সম্পাদনায় এটি স্পষ্ট করার চেষ্টা করেছি।
গিলস

3
আমি লিখেছিলাম যে একটি জম্বি হত্যার কোনও মানে হয় না তবে এটি বহু লোক এটি চেষ্টা করে এবং অভিযোগ করতে বাধা দেয় না। অবিচ্ছিন্ন ঘুমের মধ্যে একটি প্রক্রিয়া হত্যা সত্যিই নকশার দ্বারা কাজ করে, তবে আমি নিরবচ্ছিন্ন ঘুমে এমন একটি প্রক্রিয়া হত্যার কথা বলছিলাম যা সিস্টেম কলটি কখনও জাগ্রত না হলে ব্যর্থ হতে পারে।
jlliagre 11'11 এ 11:39

11
man 5 nfs: " intr/ nointrমাউন্ট অপশনটি কার্নেল ২..2.২৫ এর পরে অবচিত করা হয়েছে। কেবলমাত্র সাইনকিআইএলই এই কার্নেলগুলিতে একটি মুলতুবি থাকা এনএফএস অপারেশনকে বাধাগ্রস্ত করতে পারে, এবং যদি নির্দিষ্ট করা হয় তবে পুরানো কার্নেলের সাথে সামনের সামঞ্জস্যতা প্রদান করতে এই মাউন্ট বিকল্পটিকে অগ্রাহ্য করা হবে।"
মার্টিন শ্র্রেডার

4
@ ইম্জ - ইভান জাখারিয়াচেভ আমি জানি না (তবে আমি জানি না)। একটি শেষ অবলম্বন হিসাবে sshfs এর সাহায্যে, আপনি sshfsপ্রক্রিয়াটি (এবং একইভাবে অন্য কোনও FUSE ফাইল সিস্টেমের সাথে: আপনি সর্বদা এইভাবে জোর করে আন-মাউন্ট করতে পারেন) হত্যা করতে পারেন)।
গিলস

100

কিছু সময় প্রক্রিয়া বিদ্যমান এবং এর কারণে হত্যা করা যায় না:

  • জম্বি হচ্ছে অর্থাৎ কোন পিতামাতার প্রস্থানটি প্রস্থান স্থিতি পড়েনি। এই জাতীয় প্রক্রিয়া পিআইডি এন্ট্রি ব্যতীত কোনও সংস্থান গ্রহণ করে না। এতে topজেড ইঙ্গিত দেওয়া হয়েছে
  • ভুলভ্রান্ত নিরবচ্ছিন্ন ঘুম। এটি ঘটতে হবে না তবে এটি বগি কার্নেল কোড এবং / বা বগি হার্ডওয়ারের সংমিশ্রণের সাথে হয় some একমাত্র পদ্ধতি হ'ল পুনরায় বুট করা বা অপেক্ষা করা। ইন topএটা ডি দ্বারা signaled হয়

2
বোকচন্দর সম্পদ গ্রহণ করে না?
লুক এম

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

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

5
"... কেবল পুনরায় চালু করা বা অপেক্ষা করা পদ্ধতি" "কতক্ষণ অপেক্ষা করুন? পাঁচ মাস কেটে গেছে এবং আমার জম্বিগুলি এখনও আছে।
DarenW

3
@ ড্যারেনডাব্লু যতক্ষণ না পিতামাতারা শিশুদের মৃত্যুর বিষয়টি স্বীকার করেন না। বিস্তারিত জানার জন্য দয়া করে প্রোগ্রামটির লেখককে জিজ্ঞাসা করুন।
ম্যাকিয়েজ পাইচোটকা

32

মনে হচ্ছে আপনার কোনও জম্বি প্রক্রিয়া থাকতে পারে । এটি নিরীহ is যখন পিতামাতার প্রক্রিয়াটি মারা যায় বা তার সন্তানের মৃত্যুতে প্রতিক্রিয়া জানায় তখন তা চলে যাবে।

topনীচের কমান্ডটি ব্যবহার করে প্রক্রিয়াটি একটি জম্বি কিনা তা আপনি দেখতে পারবেন :

ps aux | awk '$8=="Z" {print $2}'

13
উম্ম, আমি সর্বদা এই জাতীয় "শক্ত" ক্ষেত্রের নামগুলি পছন্দ করি না ps। কে নিশ্চিত হতে পারে যে প্রয়োজনীয় ক্ষেত্র সর্বদা 8 তম হবে, psসমস্ত ইউনিয়নে সমস্ত বাস্তবায়ন সহ?
সিনট্যাক্সেরর

26

কোনও ক্লু জন্য আপনার /var/log/kern.logএবং /var/log/dmesg(বা সমমান) পরীক্ষা করুন । আমার অভিজ্ঞতায় এটি তখনই ঘটেছিল যখন কোনও এনএফএস মাউন্টের নেটওয়ার্ক সংযোগ হঠাৎ করেই নেমে গেছে বা কোনও ডিভাইস ড্রাইভার ক্র্যাশ হয়ে গেছে। একটি হার্ড ড্রাইভ পাশাপাশি ক্র্যাশ যদি ঘটতে পারে, আমি বিশ্বাস করি।

lsofপ্রক্রিয়াটি কী কী ডিভাইসে খোলা হয়েছে তা দেখতে আপনি ব্যবহার করতে পারেন।


6
এনএফএস উল্লেখ করার জন্য +1। কয়েক বছর আগে আমার প্রতি কয়েক মাস পরে এটি ঘটেছিল - যদি এনএফএস সার্ভারটি ক্র্যাশ হয়ে যায় তবে সমস্ত (প্যাচড) আরএইচইএল বাক্সে এনএফএস ক্লায়েন্টগুলি ঝুলিয়ে রাখত। kill -960 মিনিট অপেক্ষা করার পরেও সাধারণত কাজ করা হয়নি। পুনরায় বুট করার একমাত্র সমাধান ছিল।
স্টিফান লাসিউইস্কি

17

যদি @ ম্যাকিয়েজ এবং @ গিলসের উত্তরগুলি আপনার সমস্যার সমাধান না করে এবং আপনি প্রক্রিয়াটি স্বীকৃতি না পান (এবং এটি আপনার ডিস্ট্রোতে কী তা জিজ্ঞাসা করলে উত্তরগুলি সরে যায় না)। রুটকিট এবং অন্য কোনও চিহ্ন যা আপনার মালিকানাধীন ছিল তা পরীক্ষা করে দেখুন । একটি রুটকিট আপনাকে প্রক্রিয়াটি হত্যার হাত থেকে বাঁচাতে সক্ষম than বাস্তবে অনেকে আপনাকে এগুলি দেখতে বাধা দিতে সক্ষম। তবে যদি তারা 1 টি ছোট প্রোগ্রাম পরিবর্তন করতে ভুলে যায় তবে তাদের স্পট করা যেতে পারে (যেমন তারা সংশোধন করেছেন top, তবে নয় htop)। সম্ভবত এটি ক্ষেত্রে নয় তবে দুঃখিতের চেয়ে ভাল নিরাপদ।


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

11

খুন বলতে আসলে একটি সংকেত প্রেরণ করা হয়। আপনি প্রেরণ করতে পারেন একাধিক সংকেত আছে। কিল -9 একটি বিশেষ সংকেত।

সিগন্যাল প্রেরণের সময় অ্যাপ্লিকেশনটি এটির সাথে কাজ করে। যদি কার্নেল এটির সাথে কাজ করে না। যাতে আপনি আপনার অ্যাপ্লিকেশনটিতে একটি সিগন্যাল ফাঁদে ফেলতে পারেন।

তবে আমি বলেছিলাম কিল -9 বিশেষ ছিল। এটি বিশেষ যে অ্যাপ্লিকেশনটি এটি পায় না। এটি সরাসরি কার্নেলের কাছে যায় যা প্রথমে সম্ভাব্য সুযোগে অ্যাপ্লিকেশনটিকে সত্যই হত্যা করে। অন্য কথায় এটি মারা যায়

কিল -15 সিগন্যাল সিগমেন্টার প্রেরণ করে যা অন্য কথায় সিগন্যাল টার্মিনেটের জন্য দাঁড়িয়েছে অ্যাপ্লিকেশনটিকে প্রস্থান করতে বলে। কোনও অ্যাপ্লিকেশনকে বলার বন্ধুত্বপূর্ণ উপায় এটি বন্ধ হওয়ার সময়। তবে অ্যাপ্লিকেশনটি কিল -9 সাড়া না দিলে এটি হত্যা করবে kill

কিল -9 যদি কাজ না করে তবে এর অর্থ সম্ভবত আপনার কার্নেলটি খারাপ হয়ে গেছে। একটি রিবুট ক্রম হয়। আমি যে কখনও ঘটছে তা মনে করতে পারি না।


5
15 হ'ল সাইনটারম (বন্ধুত্বপূর্ণ হত্যা), সাইনআপ নয়। সাইনআপটি নিয়ন্ত্রণকারী টার্মিনালটি বন্ধ হয়ে যাওয়ার বা যোগাযোগের চ্যানেলটি হারিয়ে যাওয়ার জন্য
জোয়েলফ্যান

11

প্রথমে এটি পরীক্ষা করে দেখুন এটির একটি জুম্বো প্রক্রিয়া (যা খুব সম্ভব):

ps -Al

আপনি এরকম কিছু দেখতে পাবেন:

0 Z  1000 24589     1  0  80   0 -     0 exit   ?        00:00:00 soffice.bin <defunct>

(বামদিকে "জেড" নোট করুন)

যদি 5 ম কলামটি 1 নয়, তবে এর অর্থ এটির একটি প্যারেন্ট প্রক্রিয়া রয়েছে। সেই প্যারেন্ট প্রসেস আইডি হত্যার চেষ্টা করুন

যদি এর পিপিআইডি = 1, এটি হত্যা করবেন না !! ভাবুন, অন্যান্য ডিভাইস বা প্রক্রিয়া এর সাথে সম্পর্কিত হতে পারে।

উদাহরণস্বরূপ, আপনি যদি একটি মাউন্ট করা ডিভাইস বা সাম্বা ব্যবহার করছিলেন তবে এটি আনমাউন্ট করার চেষ্টা করুন। এটি জুম্বো প্রক্রিয়াটি মুক্তি দিতে পারে।

দ্রষ্টব্য : যদি ps -Al(বা top) "জেড" এর পরিবর্তে "ডি" দেখায়, এটি দূরবর্তী মাউন্ট (এনএফএসের মতো) এর সাথে সম্পর্কিত হতে পারে। আমার অভিজ্ঞতায়, রিবুট করা সেখানে যাওয়ার একমাত্র উপায়, তবে আপনি আরও উত্তরগুলি পরীক্ষা করতে পারেন যা এই কেসটিকে আরও বিস্তারিতভাবে কভার করে।


1
অভিভাবক প্রক্রিয়াতে SIGCHLD প্রেরণের ফলে পিতামাতার প্রক্রিয়াটি মারা যাওয়ার শনাক্ত করতে পারে। এটি পিপিআইডি = ১ থাকা সত্ত্বেও কাজ করা উচিত এটি সাধারণত কার্নেল দ্বারা প্রেরণ করা হয় তবে কিলের মাধ্যমে পিতামাতার সাথে প্রেরণ করা যেতে পারে (লিনাক্সে কিল -১17, অন্যান্য * নিক্সের ম্যান্যাপগুলি পরীক্ষা করে দেখুন)। কিলের এই ব্যবহারটি আসলে পিতামাতাকে "হত্যা" করবে না, বরং (পুনরায়) এটি জানিয়ে দেয় যে কোনও শিশু মারা গেছে এবং তাকে পরিষ্কার করা দরকার। নোট করুন যে সিগচাল্ডটি জম্বিটির পিতামাতার কাছে প্রেরণ করতে হবে, জম্বি নিজেই নয়।
স্টেফানি

10

আরম্ভ প্রক্রিয়াটি সিগ্কিলের থেকে সুরক্ষিত।

এটি কার্নেল থ্রেডের ক্ষেত্রেও সত্য, যেমন পিপিআইডি 0 সমান "প্রসেসস"।


1
কার্নেলের কাজগুলি সিগ্কিলের থেকেও অনাক্রম্য হতে পারে। বিটিআরএসএফের সাথে এটি প্রায়শই যথেষ্ট হয়।
টুবু

9

অন্যরা যেমন উল্লেখ করেছে, নিরবচ্ছিন্ন ঘুমের মধ্যে একটি প্রক্রিয়া তাত্ক্ষণিকভাবে হত্যা করা যায় না (বা, কিছু ক্ষেত্রে, মোটেও)। এটি লক্ষ্য করার মতো বিষয় যে নির্দিষ্ট পরিস্থিতিতে, বিশেষত সাধারণ ক্ষেত্রে যেখানে এনএফএসে অপেক্ষা করা হচ্ছে সেখানে এই সমস্যা সমাধানের জন্য আরেকটি প্রক্রিয়া রাষ্ট্র, TASK_KILLABLE যুক্ত করা হয়েছিল। দেখুন http://lwn.net/Articles/288056/

দুর্ভাগ্যক্রমে আমি বিশ্বাস করি না যে এটি কার্নেলের বাইরে কোথাও ব্যবহৃত হয় তবে এনএফএস।


lsএকটি sshfsমাউন্ট অ্যাক্সেস করার প্রক্রিয়াটি হারাতে আমার সমস্যা হয়েছিল , যখন রিমোট সার্ভারটি অপ্রয়োজনীয় হতে পারে। FUSE বা sshfs এর জন্য কি কোনও সমাধান রয়েছে যা আমি ভবিষ্যতে এই জাতীয় পরিস্থিতি এড়াতে ব্যবহার করতে পারি? 2.6.30 কার্নেল
imz - ইভান জ্যাকারিয়াশেভ

@ আইএমজেড গিলস (এসএসএফএস মারার জন্য) একটি পরামর্শ রয়েছে - unix.stackexchange.com/a/5648/4319
ইম্জ - ইভান জাকারিয়াশেভ

6

একটি ছোট স্ক্রিপ্ট তৈরি করেছে যা আমাকে একবার দেখার জন্য অনেকটা সহায়তা করেছিল!

আপনি এটির পথে কোনও প্রদত্ত নামের সাথে যে কোনও প্রক্রিয়া হত্যার জন্য এটি ব্যবহার করতে পারেন (এতে মনোযোগ দিন !!) অথবা আপনি "-u ব্যবহারকারীর নাম" পরামিতি ব্যবহার করে প্রদত্ত ব্যবহারকারীর যে কোনও প্রক্রিয়া মেরে ফেলতে পারেন।

#!/bin/bash

if [ "$1" == "-u" ] ; then\n
        PID=`grep "$2" /etc/passwd | cut -d ":" -f3`
        processes=`ps aux | grep "$PID" | egrep -v "PID|ps \-au|killbyname|grep" | awk '{ print $2}'`
        echo "############# Killing all processes of user: $2 ############################"
else
        echo "############# Killing processes by name: $1 ############################"
        processes=`ps aux | grep "$1" | egrep -v "killbyname|grep" | awk '{ print $2}' `
fi


for process in $processes ; do
        # "command" stores the entire commandline of the process that will be killed
        #it may be useful to show it but in some cases it is counter-productive
        #command=`ps aux | grep $process | egrep -v "grep" | awk '{ print $2 }'`
        echo "Killing process: $process"
        echo ""
        kill -9 $process
done

4
এটির সাথে কেবল লিঙ্ক করার পরিবর্তে, আপনি কি পরিবর্তে কোডটি এখানে পোস্ট করতে পারেন।
tshepang


হ্যাঁ তবে "$ নাম" আরও সমষ্টিগত ... এটি চলমান পথে "$ নাম" দিয়ে যে কোনও প্রক্রিয়াটিকে মেরে ফেলবে। আপনার কাছে এই বিশাল কমান্ড লাইন থাকা খুব কার্যকর হতে পারে এবং প্রক্রিয়াটির নাম কী তা আপনি জানেন না।
ব্যবহারকারী36035

5

এমন একটি মামলা রয়েছে যেখানে আপনি কোনও প্রক্রিয়াতে একটি কিল -9 প্রেরণ করলেও, সেই পিডটি বন্ধ হয়ে যাবে, তবে প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে পুনরায় চালু হবে (উদাহরণস্বরূপ, আপনি যদি এটির চেষ্টা করে থাকেন তবে gnome-panelএটি পুনরায় আরম্ভ হবে): এখানে কি এমন ঘটনা ঘটতে পারে?


8
যখন এই জাতীয় কিছু ঘটে তখন পিআইডি আসলে পরিবর্তন হয়। তাই আমি খেয়াল করতাম।
tshpang

2

মূলত এখান থেকে :

স্ট্রেস কিছু দেখায় কিনা তা পরীক্ষা করে দেখুন

strace -p <PID>

প্রক্রিয়াটি জিডিবির সাথে সংযুক্ত করার চেষ্টা করুন

gdb <path to binary> <PID>

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


আমার জন্য কাজ! (ইউএসবি ডিভাইসটি
প্লাগিং করা হচ্ছে

1

আমার এই সমস্যাটি ছিল এই যে আমি সঙ্গে চালু ছিল একটি প্রোগ্রাম ছিল straceএবং বিঘ্নিত Ctrl+ + C। এটি একটি T(সনাক্ত বা বন্ধ) অবস্থায় শেষ হয়েছিল। আমি জানি না কীভাবে এটি ঘটেছিল তবে এটি কৃপাযোগ্য ছিল না SIGKILL

দীর্ঘ গল্প সংক্ষেপে, আমি এটি সহ এটি হত্যা করতে সফল হয়েছিল gdb:

gdb -p <PID>
> kill
Kill the program being debugged? (y or n) y
> quit

-1

গিলসের উত্তরের একটি সূত্রের ভিত্তিতে, আমার উপরে "জেড" চিহ্নিত একটি প্রক্রিয়া ছিল ( <defunct>পিএসে) যা সিস্টেম সংস্থান ব্যবহার করছে, এমনকি এটির একটি বন্দর খোলা ছিল যা LISTEN'ing ছিল এবং আপনি সেই বন্দরের সাথে সংযোগ স্থাপন করতে পারেন। এটি এটি কার্যকর করার পরে ছিল kill -9। এর পিতামাতার "1" (অর্থাত্ init) সুতরাং তাত্ত্বিকভাবে এটি কেবল পুনরাবৃত্তি করা এবং অদৃশ্য হওয়া উচিত। তবে এটি ছিল না, এটি চারপাশে লেগে ছিল, যদিও দৌড়াচ্ছে না, এবং "মরছে না"

সুতরাং আমার ক্ষেত্রে এটি জম্বি ছিল তবে এখনও সম্পদ গ্রহণ করছে ... FWIW।

এবং এটা কোন সংখ্যা দ্বারা killable ছিল না kill -9'এর

এবং এর পিতামাতা ছিল initকিন্তু এটি কাটা হয়নি (পরিষ্কার করা)। অর্থাৎ initএকটি জম্বি সন্তান ছিল had

এবং সমস্যা সমাধানের জন্য পুনরায় বুট করার প্রয়োজন ছিল না। যদিও একটি রিবুট সমস্যাটির আশেপাশে "কাজ করবে" / এটিকে দ্রুত বন্ধ করে দিয়েছে। শুধু করুণাময় নয়, যা এখনও সম্ভব ছিল।

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

উপরের অনেকগুলি ইন্টারভিউগুলিতে বিভিন্ন জায়গায় "অসম্ভব" হিসাবে বর্ণনা করা হয়েছে।

দেখা যাচ্ছে যে এর মধ্যে আমার একটি অভ্যন্তরীণ থ্রেড ছিল যা "সিস্টেম কল" (এই উদাহরণে ioctl) চালাচ্ছিল যা ফিরে আসতে কয়েক ঘন্টা সময় নিচ্ছিল (এটি প্রত্যাশিত আচরণ ছিল)। দৃশ্যত ioctlকলটি থেকে ফিরে না আসা পর্যন্ত সিস্টেম "সমস্ত উপায়ে" প্রক্রিয়াটিকে হত্যা করতে পারে না , অনুমান করুন এটি কার্নেল জমিতে প্রবেশ করবে না। কয়েক ঘন্টা পরে এটি ফিরে আসল, জিনিসগুলি পরিষ্কার হয়ে গেল এবং সকেটগুলি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে গেছে ইত্যাদি প্রত্যাশা অনুযায়ী। মৃত্যুর সারিতে কিছুটা অবসন্ন সময়! কার্নেল ধৈর্য ধরে এটি হত্যা করার জন্য অপেক্ষা করছিল।

সুতরাং ওপিকে উত্তর দিতে, কখনও কখনও আপনাকে অপেক্ষা করতে হবে। অনেক দিন. তারপরে হত্যার অবশেষে গ্রহণ করা হবে।

কার্নেল প্যানিক (যেমন কার্নেল বাগ) আছে কিনা তা পরীক্ষা করার জন্য ডেমসগ পরীক্ষা করে দেখুন।


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

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