রিবুট না করে হত্যা করা যায় না এমন একটি প্রক্রিয়া কীভাবে হত্যা করবেন?


11

এখানে 5 টি প্রক্রিয়া রয়েছে যা দ্বারা হত্যা করা যাবে না kill -9 $PIDএবং কার্যকর cat /proc/$PID/cmdlineকরে বর্তমান অধিবেশন স্থগিত করবে। হতে পারে তারা জম্বি প্রক্রিয়া।

কার্যকর করা ps -ef or htopবর্তমান অধিবেশন স্থগিত করবে। কিন্তু topএবং ps -eভাল কাজ করছে।

সুতরাং দেখে মনে হচ্ছে যে ফাইল সিস্টেম দুটি প্রতিক্রিয়া জানায় না।

এটি ভার্চুয়াল মেশিনগুলি চালিত একটি উত্পাদন মেশিন, সুতরাং রিবুট করা কোনও বিকল্প নয়।

নিম্নলিখিত প্রক্রিয়াগুলি আইডিগুলি কাজ করছে না: 16181 16765 5985 7427 7547

এই প্রক্রিয়াগুলির পিতা-মাতা হলেন init

        ├─collectd(16765)─┬─{collectd}(16776)
        │                 ├─{collectd}(16777)
        │                 ├─{collectd}(16778)
        │                 ├─{collectd}(16779)
        │                 ├─{collectd}(16780)
        │                 └─{collectd}(16781)
        ├─collectd(28642)───{collectd}(28650)
        ├─collectd(29868)─┬─{collectd}(29873)
        │                 ├─{collectd}(29874)
        │                 ├─{collectd}(29875)
        │                 └─{collectd}(29876)

এবং একটি qemu প্রক্রিয়া কাজ করে না

|-qemu-system-x86(16181)-+-{qemu-system-x86}(16232)
|                        |-{qemu-system-x86}(16238)
|                        |-{qemu-system-x86}(16803)
|                        |-{qemu-system-x86}(17990)
|                        |-{qemu-system-x86}(17991)
|                        |-{qemu-system-x86}(17992)
|                        |-{qemu-system-x86}(18062)
|                        |-{qemu-system-x86}(18066)
|                        |-{qemu-system-x86}(18072)
|                        |-{qemu-system-x86}(18073)
|                        |-{qemu-system-x86}(18074)
|                        |-{qemu-system-x86}(18078)
|                        |-{qemu-system-x86}(18079)
|                        |-{qemu-system-x86}(18086)
|                        |-{qemu-system-x86}(18088)
|                        |-{qemu-system-x86}(18092)
|                        |-{qemu-system-x86}(18107)
|                        |-{qemu-system-x86}(18108)
|                        |-{qemu-system-x86}(18111)
|                        |-{qemu-system-x86}(18113)
|                        |-{qemu-system-x86}(18114)
|                        |-{qemu-system-x86}(18119)
|                        |-{qemu-system-x86}(23147)
|                        `-{qemu-system-x86}(27051)

1
জুম্বো প্রক্রিয়াগুলির ফলে কোনও সমস্যা হওয়া উচিত নয়। যদি জুম্বো প্রক্রিয়াগুলির সংখ্যা এত বড় হয় যে সার্ভারে প্রক্রিয়া সীমা অতিক্রম করে তবে এটি সমস্যার কারণ হতে পারে।
রাজা

@ স্যালটন: আমরা পিএস-শেফ এবং হটোপ ব্যবহার করতে পারি না যাতে আমাদের কিছু সমস্যা হয়েছিল, সম্ভবত আমরা যা দেখছি তা জম্বি প্রক্রিয়া বলা হয় না?
স্যাম স্টোলিঙ্গা

1
আপনি /usr/bin/strace ps -efঠিক কোথায় ঝুলছেন তা ব্যবহার করে আপনি ট্রেস করার চেষ্টা করতে পারেন ps -ef
রাজা

2
আপনি কীভাবে এটি নির্ধারণ করেছেন জম্বিগুলি? এটি বরং ঝুলন্ত প্রক্রিয়াগুলির মতো দেখায়। না ps -elকাজ এবং যা রাষ্ট্র এই প্রক্রিয়ার আছে?
নীল

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

উত্তর:


22

তোমার জম্বি নেই cat /proc/$PID/cmdlineএকটি জম্বি সঙ্গে কোন সমস্যা হবে না। যদি kill -9প্রোগ্রামটি না খোলায় , এর অর্থ প্রোগ্রামটি কিছু নিরবচ্ছিন্ন I / O অপারেশন করছে। এটি সাধারণত তিনটি জিনিসের একটিকে নির্দেশ করে:

  • একটি নেটওয়ার্ক ফাইল সিস্টেম যা সাড়া দিচ্ছে না;
  • একটি কার্নেল বাগ;
  • একটি হার্ডওয়্যার বাগ।

psকারেন্টগুলি উপরের কোনও কারণে কার্নেল সরবরাহ করে না এমন প্রক্রিয়া সম্পাদনযোগ্য পাথের মতো কিছু তথ্য পড়ার চেষ্টা করলে ইউটিলিটিগুলি স্তব্ধ হয়ে যেতে পারে।

cat /proc/16181/syscall16181 কী প্রক্রিয়া করছে তা দেখার চেষ্টা করুন । আপনার সিস্টেমটি কতদূর গেছে তার উপর নির্ভর করে এটি কাজ করতে পারে বা নাও পারে।

যদি সমস্যাটি একটি নেটওয়ার্ক ফাইল সিস্টেম হয় তবে আপনি এটিকে জোরপূর্বক-আনমাউন্ট করতে বা এটি অনলাইনে আনতে সক্ষম হতে পারেন। সমস্যাটি যদি কার্নেল বা হার্ডওয়্যার বাগ হয় তবে আপনি যা করতে পারেন তা বাগের প্রকৃতির উপর নির্ভর করবে। পুনরায় বুট করা (এবং একটি নির্দিষ্ট কার্নেলে আপগ্রেড করা, বা ভাঙা হার্ডওয়্যার প্রতিস্থাপনের) দৃ strongly়ভাবে সুপারিশ করা হয়।


বিড়াল কখনও সাড়া দেয় না। আমি মনে করি না এটি একটি বাগ। আমি মনে করি এটি একটি "বৈশিষ্ট্য"।
আউল

7

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

জুম্বো প্রক্রিয়াগুলি কখনই কোনও কারণে ঝুলতে পারে না তাই এটির মতো মনে হচ্ছে এটি আপনার সমস্যা নাও হতে পারে। যদি এটি সিস্টেম কল বা ড্রাইভার ঝুলন্ত থাকে তবে প্রক্রিয়াটি নিরবচ্ছিন্ন অবস্থায় থাকতে পারে। এখানে একটি ভাল ব্যাখ্যা আছে


প্রচুর পরিমাণে জম্বি প্রক্রিয়া forkসফল হওয়া থেকে বিরত থাকতে পারে (যখন হার্ড nrpocপৌঁছায়) তখনও তারা প্রক্রিয়া সারণীতে স্থান দখল করে।
dhchdhd

2

লিনাক্সে জম্বি প্রক্রিয়াগুলি সন্ধান করতে:

$ পিএস অ্যাকো স্ট্যাট, পিপিড, পিড, কম | গ্রেপ-ডাব্লু

জে 555 10242 জঘন্য-বোকচন্দর <বিচ্ছিন্ন>

প্রথমত, আপনি কমান্ড কমান্ডটি ব্যবহার করে জম্বিটির পিতামাতার প্রক্রিয়ায় SIGCHLD সিগন্যাল প্রেরণের চেষ্টা করতে পারেন। নোট করুন যে উপরের কমান্ডটি আপনাকে প্রতিটি জোম্বির পিপিআইডি (প্যারেন্ট প্রসেসের পিআইডি) দেয়। আমাদের উদাহরণস্বরূপ, জম্বিটির পিপিআইডি হ'ল 555

do সুডো কিল -sCHCHLD 555

যদি কোনও জম্বি প্রক্রিয়া এখনও না চলে যায় তবে আপনি জম্বিটির প্যারেন্ট প্রসেসটি (যেমন, 555) হত্যা করতে পারেন।

$ সুডো কিল -9 555

এর প্যারেন্ট প্রসেসটি মারা যাওয়ার পরে, জম্বিটি ডিআইসি প্রক্রিয়া দ্বারা গ্রহণ করা হবে, যা লিনাক্সের সমস্ত প্রক্রিয়ার পিতা-মাতা। Init প্রক্রিয়া পর্যায়ক্রমে wait()যে কোনও জম্বি প্রক্রিয়া কাটাতে কল করে।


এটিই আসল উত্তর। পিতামাতার হত্যার কাজ, ধন্যবাদ।
অ্যান্ড্রু

1

আপনি কেবল একটি জম্বিটিকে তার পিতামাতাকে হত্যা করে হত্যা করতে পারেন। একটি জম্বি প্রক্রিয়া তার সমস্ত সংস্থান প্রকাশ করেছে এবং তার পিতামাতার দ্বারা তার প্রস্থান স্থিতির জন্য অপেক্ষা করছে। এটি একটি জম্বি হয়ে যায় যখন পিতা-মাতা waitতার বাচ্চা থেকে প্রস্থান স্থিতি বাছাইয়ের জন্য কার্যকর করে না । আপনি যখন জম্বি'র পিতামাতাকে হত্যা করেন, initপ্রস্থান স্থিতিটি চয়ন করেন এবং শেষ পর্যন্ত জম্বি মারা যায়।


তাহলে আপনি আমাকে ইনডিকে মারতে চান? দুঃখিত হিহে এই প্রশ্নটি থেকে এটি পরিষ্কার নয় তবে পিতামাতার মনে হচ্ছে :( আমি প্রশ্নটি সম্পাদনা করেছি।
স্যাম স্টোলেঙ্গা

4
না, আমরা চাই আপনি জম্বিটিকে হত্যা করার চেষ্টা করবেন না। আপনি একটি জম্বি মারতে পারবেন না। এই FAQ ইউনিক্সের মতোই পুরানো itself
ট্রিপলি

@ ট্রিপলি: হ্যাঁ যা বুঝতে পেরেছি তা হ'ল। হয়তো আমি যা করছি তা জম্বি নয়। এইচটিপি কাজ করছে না এবং বিড়াল / প্রোক / $ পিড / সেমিডলাইন বা এলএস / প্রোক / $ পিড / এছাড়াও কাজ করছে না। সাধারণত আমি এখানে কেন জিজ্ঞাসা করেছি জম্বিগুলি নিয়ে এটি হয় না, এটি কোনও সাধারণ সমস্যা নয়। আমি বেশ কয়েকটি উত্তর যাচাই করেছি যা সমস্তই আপনাকে পিতামাতাকে মেরে ফেলতে বলে যা আমার ক্ষেত্রে প্রবর্তিত বা পুনরায় বুট করা।
স্যাম স্টোলিঙ্গা

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