मेरी समस्या यह है कि
lsof -p pid
मैं किसी प्रक्रिया की खोली हुई फ़ाइल की सूची का पता लगा सकता हूँ जिसकी प्रक्रिया आईडी pid है। लेकिन क्या प्रत्येक एक्सेस की गई फ़ाइल की फ़ाइल ऑफसेट का पता लगाने का एक तरीका है?
कृपया मुझे कुछ सुझाव दें?
मेरी समस्या यह है कि
lsof -p pid
मैं किसी प्रक्रिया की खोली हुई फ़ाइल की सूची का पता लगा सकता हूँ जिसकी प्रक्रिया आईडी pid है। लेकिन क्या प्रत्येक एक्सेस की गई फ़ाइल की फ़ाइल ऑफसेट का पता लगाने का एक तरीका है?
कृपया मुझे कुछ सुझाव दें?
जवाबों:
लिनक्स पर, आप N
प्रक्रिया PID
में फ़ाइल डिस्क्रिप्टर संख्या की स्थिति पा सकते हैं /proc/$PID/fdinfo/$N
। उदाहरण:
$ cat /proc/687705/fdinfo/36
pos: 26088
flags: 0100001
एक ही फ़ाइल को कई फ़ाइल डिस्क्रिप्टर का उपयोग करके कई बार विभिन्न पदों के साथ खोला जा सकता है, इसलिए आपको एक से अधिक मामलों में प्रासंगिक एक का चयन करना होगा। उपयोग:
$ readlink /proc/$PID/fd/$N
यह जानने के लिए कि संबंधित फ़ाइल डिस्क्रिप्टर किस फ़ाइल से जुड़ा हुआ है (यह एक फ़ाइल नहीं हो सकती है, इस मामले में सिमलिंक झूल रहा है)।
lsof
-o
विकल्प के साथ ऐसा कर सकते हैं ।
लिनक्स के तहत, इसकी जानकारी इससे मिलती है /proc
, इसलिए आप इसे वहां भी प्राप्त कर सकते हैं ।