পিএস এবং শীর্ষগুলির ফলাফলগুলি মেলে না


0

আমার একটি পরিস্থিতি আছে যেখানে আমার একটি প্রক্রিয়া আছে, বলুন script.pl( এটি এখানে ), যা আউটপুটটি প্রায় আটকে থাকে বলে মনে হয় ps auxw | grep script.pl, কখনও কখনও যখন ভারী ভারী হয় এটি বেশ কয়েক মিনিটের জন্য ঘুরে থাকে। এই স্ক্রিপ্টটিকে অন্য প্রক্রিয়া দ্বারা সেকেন্ডে 5-10 বার বলা হয় (এই প্রক্রিয়াটি স্ক্রিপ্টটিতে এইরকম একটি অবরুদ্ধ কল করে System(/some/path/script.pl &):)।

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

এবং সেখানেই জিনিসগুলি অদ্ভুত হয়। 1) আমি এই সকেট ক্রিয়াকলাপটি যাচাই করতে পারি (স্ক্রিপ্টটি কেবলমাত্র এক জিনিস) অন্য বাক্সে লগগুলি দেখে সম্পূর্ণ করে - এটি অবিলম্বে এবং সময়মতো বার্তাটি পায়। 2) যদিও আমি আউটপুটে অনেকগুলি দৃষ্টান্ত (আপাতদৃষ্টিতে সমাপ্ত) এর script.plউদাহরণগুলি দেখতে পাই, তবুও আমি psযদি এমন কিছু করি তবে সংশ্লিষ্ট এন্ট্রিগুলি দেখি না top -n 1 | grep script.pl- এটি মনে হয় script.plকোনও সংস্থান ব্যবহার করে না; বাস্তবে script.plএই আউটপুটটির কোনও দৃষ্টান্ত নেই ।

সুতরাং পরিশেষে, psপার্ল ইন্টারপ্রেটারের সাথে বা পার্ল ইন্টারপ্রেটারের সাথে কোনও পরিচিত সমস্যা রয়েছে যা psআউটপুটটিতে প্রায় পার্ল স্ক্রিপ্টগুলি ঝুলিয়ে রাখতে পারে , তবে topআউটপুট নয় ?

ধন্যবাদ!

সম্পাদনা: আমি শীর্ষ কমান্ড কলকে এতে পরিবর্তন করেছি : top -n 1 -u script_pl_user | grep script.pl. এখন প্রক্রিয়া উভয় জায়গায় সমানভাবে প্রদর্শিত হবে। তবে, এতে top, এটি সিপিইউ ব্যবহারের 0.0% ব্যবহার করছে এবং খুব বা খুব খুব ছোট মেমোরি ব্যবহার করছে না। স্ক্রিপ্ট.পিএল এর ক্রিয়াকলাপগুলি সম্পূর্ণ হওয়ার জন্য যাচাই করা থাকলেও কেন চারিদিক ঘুরে বেড়াচ্ছে?


1
topকেবলমাত্র nপ্রক্রিয়াগুলি দেখায় , যেখানে nটার্মিনাল আকারের উপর নির্ভর করে। ডিফল্টরূপে এটি সিপিইউ ব্যবহারের মাধ্যমে অর্ডার করা হয়, সুতরাং আপনি এমন প্রক্রিয়াগুলি দেখতে পাবেন না যা সিপিইউ বেশি ব্যবহার করে না। সুতরাং আপনি কেন আশা করছেন যে আপনার স্ক্রিপ্টটি এই (ছাঁটা) শীর্ষ তালিকায় তালিকাবদ্ধ হবে? ps axসমস্ত প্রক্রিয়া দেখায়।
এমপি

হ্যাঁ। আমি আমার শীর্ষ কলটি পরিবর্তন করেছি top -n 1 -u script_pl_user | grep script.pl। আমার মূল প্রশ্নটি রয়ে গেছে, স্ক্রিপ্ট.পিএল এখনও কেন প্রদর্শিত হচ্ছে topএবং psযদিও অপারেশনটি করার কথা ছিল তার কাজ শেষ হওয়ার জন্য যাচাই করা হচ্ছে? এরা কেন চারিদিকে লেগে আছে?
কিমার্কস 2

উত্তর:


1

এটি পিএস এবং শীর্ষের যান্ত্রিকতার কারণে।

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

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


কোনও ধারণা কেন কোনও প্রক্রিয়া পিএস বা শীর্ষের জন্য প্রদর্শিত হবে যখন অপারেশনটি সম্পন্ন করা হয়েছিল তা যাচাই হয়ে গেছে? প্রকৃত পার্ল বাইনারি ব্যাখ্যাটি দিয়ে যাওয়ার সাথে এটি কী সমস্যা? ধন্যবাদ।
kmark2

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