উত্তর:
একটি নামহীন পাইপ প্রকৃতির দ্বারা ফাইলের বর্ণনাকারী অ্যাপ্লিকেশনগুলির কাছে ব্যক্তিগত। পাইপে ট্র্যাফিক পর্যবেক্ষণ বা সংশোধন করার কোনও নীতিগত উপায় নেই। পাইপগুলি সরাসরি লিনাক্সের দিকে তাকানোর কোনও উপায় আছে বলে আমি মনে করি না।
আপনি যা করছেন তার পরে কম-বেশি করার একটি অ-তাত্ত্বিক উপায় রয়েছে যদিও: পিটিআরসি সিস্টেম কলের মাধ্যমে । আপনি পাই প্রতি পাইপ উপর প্রতি সেচ করা হবে না, কিন্তু প্রক্রিয়া এক। পর্যবেক্ষণের জন্য, স্ট্রেস ব্যবহার করুন , যেমন
strace -p1234 -s99999 -e write
1234
পাইপে লেখার প্রক্রিয়াটির প্রক্রিয়া আইডি কোথায় । ডেটা সংশোধন করা শক্ত, তবে করা যেতে পারে। আমি মনে করি সবচেয়ে সহজ উপায় হ'ল প্রথমে একটি মধ্যবর্তী প্রক্রিয়া সেট আপ করা যা এর স্ট্যান্ডার্ড ইনপুটটিকে তার স্ট্যান্ডার্ড আউটপুটে অনুলিপি করে, সেই সাথে আপনি যে ডেটা ইনজেক্ট করতে চান (এবং আপনি যে কোনও ডেটা দমন করতে চান সেটিকে বিয়োগ করবে)। দুটি নামযুক্ত পাইপ তৈরি করুন এবং সেই স্টিডিন দিয়ে একটি পাইপ এবং অন্যটিতে স্টডআউট দিয়ে মধ্যবর্তী প্রক্রিয়া শুরু করুন। তারপরে যথাযথ নামযুক্ত পাইপে দুটি টার্গেট প্রক্রিয়া সম্পাদন করতে , তারপরে যথাযথ ফাইল বর্ণনাকারীর উপর পাইপ স্থাপন করতে একটি ডিবাগার (যেমন জিডিবি ) ব্যবহার করুন। মনে রাখবেন যে প্রক্রিয়াটির একটি প্রক্রিয়া ক্র্যাশ হওয়ার সম্ভাবনা রয়েছে।open
dup
(যদি আপনি শেষ অনুচ্ছেদটি বুঝতে না পারেন তবে আমি দুঃখিত, তবে এর জন্য একটি নির্দিষ্ট স্তরের প্রযুক্তিবিজ্ঞানের দরকার পড়ে I এর থেকে সহজ উপায় আছে বলে আমি মনে করি না))
একটি পাইপ নিরীক্ষণের জন্য দরকারী কিছু সরঞ্জাম:
ইতিমধ্যে চলমান প্রোগ্রামের জন্য, যেখানে কেউ পাইপিং নিয়ন্ত্রণ করে না, জিডিবি পদ্ধতিটি দেখুন:
একটি চলমান প্রক্রিয়া থেকে আউটপুট পুনর্নির্দেশ ।
অথবা কেউ স্ট্রেস ব্যবহার করতে পারে :
strace -ewrite -p $PID 2>&1 | grep "write(1"
কেবল বর্ণনাকারী 1 টি কল দেখায়। "2> & 1" স্ট্যাডারকে স্টডআউটে পুনর্নির্দেশ করা হয়, যেমন স্ট্রেস ডিফল্টরূপে স্ট্ডারকে লেখেন।