আমার যদি পাইপড কমান্ড থাকে যেমন
cat myfile | processor_application
প্রসেসর_অ্যাপ্লিকেশন হ'ল স্ট্যান্ডার্ড থেকে কিছু অংশে, প্রক্রিয়াগুলিতে, প্রক্রিয়া করার জন্য, ফাইল বিড়ালটি কতটা দূরে গেছে তা দেখা সম্ভব?
সম্ভবত lsof ব্যবহার করছেন?
ধন্যবাদ!
আমার যদি পাইপড কমান্ড থাকে যেমন
cat myfile | processor_application
প্রসেসর_অ্যাপ্লিকেশন হ'ল স্ট্যান্ডার্ড থেকে কিছু অংশে, প্রক্রিয়াগুলিতে, প্রক্রিয়া করার জন্য, ফাইল বিড়ালটি কতটা দূরে গেছে তা দেখা সম্ভব?
সম্ভবত lsof ব্যবহার করছেন?
ধন্যবাদ!
উত্তর:
আপনি যেমন পিভি ব্যবহার করতে পারেন যেমন
pv file | processor_application
পিভি পাস করার সাথে সাথে এটি স্টেনটাকে সরাসরি স্টিন্ট করে দেয় আপনার বিড়াল ব্যবহার করার দরকার নেই।
সম্পাদনা করুন
আপনার প্রোগ্রাম হিসাবে ইতিমধ্যে তারপর চলমান এর PID, এটি catপ্রক্রিয়া এবং তারপর বিষয়বস্তু তাকান
/proc/<PID>/io
যা আপনাকে জানাবে যে এটি কতটি বাইট লিখেছেন - wchar।
কাফনের কাপড়! পাইপ প্রদর্শক নির্ভুলভাবে এটি করে। এটি কেবল আপনার পাইপলাইনে inোকান:
cat myfile | pv | processor_application
আপনি catউপরের উদাহরণটিতে অপ্টিমাইজ করতে পারেন :
pv myfile | processor_application
যার প্রকৃত অগ্রগতি সূচক দেওয়ার সুবিধা রয়েছে, যেহেতু পিভি সরাসরি ইনপুটটির আকার নির্ধারণ করতে পারে। আপনি যদি পাইপলাইনের মাঝখানে পিভি ব্যবহার করেন, সঠিক অগ্রগতি পেতে আপনাকে নিজের ফাইল আকারের সরবরাহ করতে হবে:
input_process | pv -s 100M -p | processor_application
পিভি কাস্টমাইজ করতে আরও বিকল্পের জন্য ওয়েবসাইটটি দেখুন।
pvযখন এটি পাওয়া যায় আমি পছন্দ করি :-)
pvপাইপলাইনটি ব্যবহার করে mkfifoএবং gdb(জিডিবি'র সাথে চারটি সিস্কেল p) sertোকানো বরং সহজ ।
প্রক্রিয়াটি ইতিমধ্যে চলমান থাকলে lsof এর একটি size/offsetকলাম রয়েছে যা আপনার পক্ষে সহায়ক হতে পারে - আপনি যে বিড়াল প্রক্রিয়াটি পরিদর্শন করতে চান তার পিআইডি এবং তারপরে সন্ধান করুন lsof -o -p [PID]।
যদি প্রক্রিয়াটি এখনও চলমান না থাকে, pvঅন্যরা যেমন পরামর্শ দেয় তবে এটি একটি ভাল বিকল্প (ধরে নিলে আপনার সিস্টেমে সেই ইউটিলিটি রয়েছে)।
-oআপনার সিস্টেমে কাজ না করে তবে আমি মনে করি যে আপনি ব্যবহারের ক্ষেত্রে যথেষ্ট lsofcat