গ্রেপ থেকে স্ট্রাইপ পাইপিং


30

আমি straceগর্ত চালানোর চেষ্টা করছি ccze, এবং পাইপ প্রত্যাশার মতো কাজ করে না।

আমি যে কমান্ড-লাইনটি পরীক্ষা করতে যাচ্ছি তা হ'ল sudo strace -p $(pgrep apache2) | grep open, এবং সমস্ত লাইন গ্রেপ উপেক্ষা করে আউটপুট হয়।

straceএই আচরণের কারণেই এমন কোনও বিশেষ কি আছে ?

উত্তর:


48

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

সুতরাং straceএটির পাইপ সক্ষম করতে আপনার স্ট্ডারকে স্টাডাউটে পুনর্নির্দেশ করা উচিত :

sudo strace -p $(pgrep apache2) 2>&1 | grep open

আপনি সত্যই যা খুঁজছেন তা বাদে

sudo strace -p $(pgrep apache2) -e open

এটা কাজ করে !! ধন্যবাদ! - আমি আসলে কেবল openকলগুলিতে দেখার চেষ্টা করছিলাম না , আমি কেবল উদাহরণ হিসাবে রেখেছি, আমি যা করতে চেষ্টা করছি তা হাইলাইট করা
আন্ড্রেই

আমি strace: Invalid process id: '-e'শেষ আদেশ দিয়ে যাচ্ছি । আমি সংস্করণ 4.8 এ আছি। 2010-03-30।
লিন

আহ, আমি আসলে httpd (আরএইচইএল) করেছি।
লিন

1
@ এলিজাহলিন apache2আপনার আগ্রহী প্রক্রিয়াটির নামটি দ্বারা প্রতিস্থাপন করুন a একটি সিআইডি pgrepপ্রিন্ট করে দেখুন তা পরীক্ষা করুন , অন্যথায় একটি বেছে নিন এবং উদাহরণস্বরূপsudo strace -p 1234 -e open
গিলস 'তাই খারাপ হওয়া বন্ধ করুন'

@ আন্ড্রেই, vimরঙিন সিনট্যাক্স হাইলাইট ব্যবহার সম্পর্কে কী ? strace $CMD 2>&1 > /dev/null | vim -c ':set syntax=strace' -
পাবলো এ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.