লিনাক্স: একাধিক প্রক্রিয়া নিরীক্ষণের জন্য একটি ওয়াচডগ রচনা


14

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

আমার প্রশ্ন, আপনি কীভাবে লিনাক্সে এই জাতীয় নজরদারি প্রয়োগ করবেন? অন্য অনেকের পিআইডি'র নজরদারি করার জন্য কি কোনও একক প্রোগ্রামের উপায় আছে?


এছাড়াও দেখুন নিশ্চিত করুন যে কোনও প্রক্রিয়া সর্বদা পর্যবেক্ষণ / তদারকি প্রোগ্রামগুলির তালিকার জন্য চলছে running
গিলস

এছাড়াও স্ট্যাকওভারফ্লো দেখুন: স্ট্যাকওভারফ্লো.
মাইক পেনিংটন

উত্তর:


17

প্রচলিত, বহনযোগ্য, সাধারণভাবে ব্যবহৃত উপায় হ'ল পিতামাতার প্রক্রিয়াটি তার বাচ্চাদের উপরে নজর রাখে।

প্রাথমিক আদিম হ'ল waitএবংwaitpid সিস্টেম কল। যখন কোনও শিশু প্রক্রিয়াটি মারা যায়, পিতামাতার প্রক্রিয়াটি একটি SIGCHLDসংকেত পায় , এটি বলার waitসাথে সাথে কোন শিশুটি মারা গিয়েছিল এবং এর প্রস্থান স্থিতি জানতে কল করা উচিত । অভিভাবক প্রক্রিয়া পরিবর্তে উপেক্ষা SIGCHLDএবং waitpid(-1, &status, WNOHANG)তার সুবিধার্থে কল করতে পারেন ।

অনেকগুলি প্রক্রিয়া নিরীক্ষণের জন্য, আপনি হয় সেগুলি সমস্ত একই পিতা বা মাতার কাছ থেকে ছড়িয়ে দিয়েছিলেন বা একটি সাধারণ মনিটরিং প্রক্রিয়ার মাধ্যমে তাদের সকলকে অনুরোধ করবেন যা কেবলমাত্র পছন্দসই প্রোগ্রামটি কল করে, এটি সমাপ্ত হওয়ার জন্য অপেক্ষা করে এবং সমাপ্তির বিষয়ে রিপোর্ট করে (শেল সিনট্যাক্সে myprogram; echo myprogram $? >>/var/run/monitor-collector-pipe:)। যদি আপনি উইন্ডোজ ওয়ার্ল্ড থেকে আসেন তবে মনে রাখবেন যে ইউনিক্স ওয়ার্ল্ডে একটি বিশেষ কাজ করা ছোট প্রোগ্রাম করা একটি সাধারণ নকশা, ওএস প্রক্রিয়াগুলি সস্তা করার জন্য তৈরি করা হয়েছে।

অনেকগুলি প্রক্রিয়া পর্যবেক্ষণ (একে সুপারভাইজারও বলা হয়) প্রোগ্রাম রয়েছে যা কোনও প্রক্রিয়া মারা যাওয়ার পরে এবং বৈকল্পিকভাবে এটি পুনরায় আরম্ভ করার পরে আরও অনেক কিছু রিপোর্ট করতে পারে: মনিট , তদারকি , আপস্টার্ট ,…


+1, আমি ঠিক যা খুঁজছিলাম - এমন বিশদ উত্তরের জন্য আপনাকে ধন্যবাদ।
জাস্টিন এথিয়ার

0

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

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