कैसे सभी फ़ाइलों को ट्रैक करने की प्रक्रिया अपने जीवनकाल में खुलती है


23

मैं एक प्रक्रिया द्वारा वर्तमान में एक्सेस की गई फ़ाइलों की जाँच के लिए lsof का उपयोग करने से अवगत हूं। क्या उन सभी फाइलों को देखने का एक तरीका मौजूद है जो एक एप्लीकेशन अपने जीवनकाल में खुलती है?


जवाबों:


25

स्ट्रेस कमांड के प्रयोग से यह संभव हो सकता है जैसे:

strace -e trace=open program [arguments]

यह उन सभी फाइलों को दिखाएगा जिन्हें एक प्रक्रिया ने एक्सेस करने की कोशिश की थी। कोई सोच सकता है कि कुछ इस तरह strace -e trace=open program [arguments] | grep -v ' = -1 ENOENT'की स्थिति में सुधार हो सकता है, लेकिन यह सच भी नहीं है। बाद वाला अधूरा और फिर से शुरू किए गए कॉल का पता लगाने में विफल रहेगा open।
— facetus

2
ध्यान दें कि आपके लिए आवश्यक संकेत हो सकता है openat।
— मर्लिन एन डी

6

मुझे यकीन नहीं है कि मैं ठीक से समझ गया हूं कि आप इसके साथ क्या करना चाहते हैं। लेकिन, क्या आपने स्ट्रेस माना है? यह फाइलों सहित सभी सिस्टम कॉल को प्रदर्शित करता है।

संपादित करें: -f विकल्प को मत भूलना जो आपको कांटे की प्रक्रियाओं का पालन करने की अनुमति देता है।


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