स्ट्रेस का उपयोग करके बाल प्रक्रिया को कैसे ट्रैक करें?


104

मैं straceसंक्षेप में एक प्रक्रिया से जुड़ा था। इस प्रक्रिया ने 90 सूत्र बनाए। जब मुझे आपत्तिजनक धागा मिला, तो मुझे मूल रूप से माता-पिता के धागे की खोज करनी थी, फिर दादा-दादी के धागे की, और इस तरह रूट प्रक्रिया के सभी तरीके।

क्या कोई ट्रिक या टूल है जिससे यह पता लगाया जा सके कि कौन सा धागा दूसरे ने बनाया है? या बेहतर अभी तक, धागा कृतियों के पेड़ की तरह प्रिंट करें pstree?


ऐसा लगता है जैसे @JeRog उत्तर को स्वीकार किया जाना चाहिए।
jww

जवाबों:



19

मैं एक आसान तरीका नहीं देख सकता:

आप कई फ़ाइलों (प्रति पीआईडी) के उत्पादन के -ffसाथ विकल्प का उपयोग कर सकते हैं -o filename

उदाहरण के लिए:

strace -o process_dump -ff ./executable
grep clone process_dump*

इससे आपको यह देखने में मदद मिलेगी कि किस माता-पिता ने क्या बनाया। शायद इससे आपको मदद मिलेगी - कम से कम तब आप पीछे की ओर खोज सकते थे।


18

वहाँ एक पर्ल स्क्रिप्ट कहा जाता है strace-graph। यहाँ github का एक संस्करण है । यह संकलक के वर्गाकार-एनजी संस्करणों के साथ पैक किया गया है । यह मेरे लिए क्रॉस प्लेटफॉर्म का भी काम करता है।

एआरएम लिनक्स बॉक्स।

$ ./strace -f -q -s 100 -o app.trc -p 449
$ tftp -pr app.trc 172.0.0.133

X86_64 लिनक्स बॉक्स।

$ ./strace-graph /srv/tftp/app.trc 
 (anon)
  +-- touch /tmp/ppp.sleep
  +-- killall -HUP pppd
  +-- amixer set Speaker 70%
  +-- amixer set Speaker 70%
  +-- amixer set Speaker 70%
  +-- amixer set Speaker 70%
  +-- amixer set Speaker 50%
  +-- amixer set Speaker 70%
  `-- amixer set Speaker 50%

आउटपुट का उपयोग मुख्य ट्रेस लॉग को नेविगेट करने में मदद करने के लिए किया जा सकता है।


1
बहुत अच्छा, यह लगभग बिल्कुल कुछ ऐसा है जो मैं कम से कम कई दिनों से चाहता था। आश्चर्यजनक रूप से, मैं इसे अपने / usr / share / doc / strace / उदाहरण / में भी देख सकता हूँ।
15

0

किसी एकल प्रक्रिया के लिए ट्रैफ़िक पकड़ने के लिए strace, जैसा कि @stackmate ने सुझाव दिया है।

strace -f -e trace=network -s 10000 -p <PID>;

या इसे एक फ़ाइल में आउटपुट करें।

strace -f -e trace=network -s 10000 -o dumpfile -p <PID>

-fसभी कांटे की प्रक्रिया के लिए, -sस्ट्रिंग आकार को प्रिंट करने के लिए, और -oआउटपुट को फ़ाइल में डंप करने के लिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.