मैक ओएस एक्स में एक फ़ाइल के साथ कौन से ऐप्स या प्रक्रियाएं इंटरैक्ट कर रही हैं डिस्कवर करें

Lsof कमांड का उपयोग करके, हम पता लगा सकते हैं कि उस पल में एक निर्दिष्ट फ़ाइल का उपयोग करने के लिए वास्तव में कौन सी प्रक्रिया या एप्लिकेशन उपयोग कर रहा है। यह opensnoop कमांड के समान है, लेकिन समय के साथ फ़ाइल में परिवर्तन देखने के बजाय, lsof हमें इस पल का एक स्नैपशॉट दे सकता है, जो समस्या निवारण उद्देश्यों के लिए सहायक हो सकता है।

lsof /path/to/filename

उदाहरण के लिए, यह देखने के लिए कि /var/log/system.log के साथ क्या इंटरैक्ट कर रहा है, हम इसे उस फ़ाइल पर इंगित करते हैं:

$ lsof /var/log/system.log
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Console 84281 Will 8r REG 14, 2 140239 71929128 /private/var/log/system.log

इस मामले में system.log का उपयोग कर ऐप "कंसोल" है। फिर, यह हमें lsof कमांड निष्पादित करने के समय एक स्नैपशॉट दिखा रहा है, लेकिन पहले उल्लिखित opensnoop कमांड का उपयोग करके आप वास्तविक समय में उस फ़ाइल का उपयोग करने वाली प्रक्रियाओं का पालन कर सकते हैं:

sudo opensnoop -f /var/log/system.log

उपर्युक्त इस तरह कुछ देखने में परिणाम होगा:
$ sudo opensnoop -f /var/log/system.log
Password:
UID PID COMM FD PATH
501 84358 cat 3 /var/log/system.log
501 45411 console 3 /var/log/system.log
0 15 syslogd 16 /var/log/system.log

इस मामले में आप प्रक्रिया आईडी के लिए "COMM" या प्रक्रिया आईडी के लिए पीआईडी ​​देख रहे हैं।

याद रखें कि आप opensnoop के साथ विपरीत तरीके से भी जा सकते हैं, और फ़ाइल के बजाए किसी एप्लिकेशन या प्रक्रिया में कमांड को इंगित करके एक ऐप का उपयोग कर रहे सभी फ़ाइलों को दिखा सकते हैं।