पीआईडी ​​द्वारा Stracing, बच्चे प्रक्रियाओं शामिल

वोट
0

मैं strace के लिए नया हूँ और मैं एक काँटेदार बच्चे strace करना चाहते हैं। क्योंकि मैं नियमित उपयोगकर्ता के रूप में ऐसा करना चाहते, इस प्रक्रिया को मैं अपने पीआईडी ​​द्वारा strace करना चाहते ट्रेसिंग प्रक्रिया (strace) का एक बच्चा होने की जरूरत है, तो मैं दो बार कांटा करने के लिए की जरूरत है। बैश में:

( ( sleep 1; echo I'm echoed from a child of strace )& exec strace -p $! ) 
#the sleep is for giving strace time to attach itself

यह सब काम करता है, फिर भी मैं पता लगाया प्रक्रिया के बच्चों को भी ट्रैक करना चाहते हैं और जैसे ही मैं जोड़ने के रूप में -fstrace करने के लिए स्विच, मैं कोई त्रुटि मिलती है:

( ( sleep 1; echo I'm echoed from a child of strace )& exec strace -fp $! ) 
#=> strace: attach: ptrace(PTRACE_ATTACH, ...): No such process

कोई सलाह?

11/03/2015 को 05:28
उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
0

आप स्वयं अपना उपयोगकर्ता की सभी प्रक्रियाओं, न सिर्फ बच्चों के पता लगा सकते हैं strace

समस्या यह है कि आप अनुभव कर रहे इस प्रकार, आप आदेश को फिर से लिखने के लिए कर सकते हैं के रूप में:

strace -f bash -c 'sleep 1; echo "Im echoed from a child of strace"'

12/03/2015 को 15:02
का स्रोत उपयोगकर्ता

वोट
0

समस्या यह है कि आप की आवश्यकता नहीं है exec, उदाहरण के लिए यहाँ:

( ( sleep 3; sleep 10 & sleep 20 & sleep 30 )& strace -fp $! )

आप पाएंगे कि आप सभी बच्चों प्रक्रियाओं के strace मिलता है देखेंगे:

...
[pid   166] wait4(-1,  <unfinished ...>
[pid   174] <... nanosleep resumed> NULL) = 0
[pid   174] close(1)                    = 0
[pid   174] close(2)                    = 0
[pid   174] exit_group(0)               = ?
[pid   174] +++ exited with 0 +++
[pid   166] <... wait4 resumed> [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 174
[pid   166] wait4(-1,  <unfinished ...>
[pid   175] <... nanosleep resumed> NULL) = 0
[pid   175] close(1)                    = 0
[pid   175] close(2)                    = 0
...

ps axf (विभिन्न PIDs के साथ) उत्पादन:

  202 ?        S      0:00          \_ bash
  203 ?        S      0:00          |   \_ bash
  210 ?        S      0:00          |   |   \_ sleep 10
  211 ?        S      0:00          |   |   \_ sleep 20
  212 ?        S      0:00          |   |   \_ sleep 30
  204 ?        S      0:00          |   \_ strace -fp 203

Ubuntu 14.04 पर परीक्षण किया गया, किसी विशेष अनुमति की के साथ एक उपयोगकर्ता पर, और ptrace गुंजाइश चेक के साथ सक्षम होना चाहिए।

10/04/2015 को 23:06
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more