Mac पर कौन सा प्रोसेस आपकी ड्राइव इस्तेमाल कर रहा है, कैसे पता करें

Mac आपकी ड्राइव eject नहीं कर रहा? यहाँ जानें कि कौन सा प्रोसेस उसे रोक रहा है — Activity Monitor, Terminal और एक तेज़ one-click तरीके से।

जब macOS किसी external ड्राइव को eject करने से मना कर देता है, तो वह बस इतना बताता है कि कोई उसे इस्तेमाल कर रहा है — और बात यहीं खत्म। न कोई नाम, न कोई इशारा, न कोई संकेत। असली वजह खुद ढूँढने में कुछ कदम लगते हैं, लेकिन यह पूरी तरह मुमकिन है। यह गाइड हर तरीका समझाती है — Apple के अपने built-in tools से लेकर उन Terminal commands तक जो वह दिखा देती हैं जो GUI छुपा लेता है।

macOS आपको सीधे क्यों नहीं बताता

यह सचमुच एक झुंझलाहट वाली बात है, कोई user की गलती नहीं। macOS हमेशा से “disk in use” error दिखाता आया है, पर कभी यह नहीं बताता कि कौन सा प्रोसेस अड़चन डाल रहा है। Operating system को पता होता है कि किस प्रोसेस ने उस volume पर कोई file open कर रखी है — बस वह जानकारी Finder या eject dialog में सामने नहीं लाता।

नतीजा: आप हर दिखने वाला app बंद कर देते हैं, फिर भी कुछ नहीं बदलता और ड्राइव eject नहीं होती। जैसा कि macOS ‘Disk In Use’ Error troubleshooting guide में बताया गया है, अड़चन अक्सर कोई background प्रोसेस होता है — Spotlight indexing, QuickLook का thumbnails बनाना, या कोई cloud sync daemon — न कि कोई ऐसी चीज़ जिसे आप खुद बंद करने की सोचेंगे।

तरीका 1: Activity Monitor (सीमित, पर शुरुआत के लिए ठीक)

ज़्यादातर लोग सबसे पहले Activity Monitor में ही देखते हैं। इस खास काम के लिए यह आदर्श नहीं है, पर बात को थोड़ा संकरा करने में मदद कर सकता है।

  1. Activity Monitor खोलें (Applications → Utilities → Activity Monitor, या Spotlight search से)।
  2. ऊपर Disk tab पर क्लिक करें।
  3. Bytes Read या Bytes Written से sort करें ताकि देख सकें कि कौन से प्रोसेस सक्रिय रूप से पढ़ या लिख रहे हैं।

दिक्कत यह है: Activity Monitor सभी volumes की disk activity दिखाता है, सिर्फ़ आपकी external ड्राइव की नहीं। list में सबसे ऊपर दिख रहा प्रोसेस शायद आपके internal SSD पर लिख रहा हो, न कि USB ड्राइव पर। यहाँ volume के हिसाब से filter नहीं कर सकते।

फिर भी, अगर कोई अनपेक्षित चीज़ दिखे — कोई backup daemon, कोई media app, कोई sync service — तो उसे quit करके दोबारा eject करना सही रहता है।

तरीका 2: lsof के साथ Terminal (भरोसेमंद तरीका)

lsof का मतलब है “list open files,” और macOS पर हर mounted volume एक file path होता है। यह command आपको हर वह प्रोसेस दिखा देगी जिसने किसी खास ड्राइव पर कोई handle open कर रखा है।

अपनी ड्राइव का Mount Point ढूँढें

सबसे पहले, यह पुष्टि करें कि macOS आपकी ड्राइव को किस नाम से देखता है:

ls /Volumes/

यह सभी mounted volumes की list देता है। आपकी external ड्राइव यहाँ दिखेगी — सही नाम नोट कर लें, capitalisation और spaces समेत।

Volume पर lsof चलाएँ

lsof /Volumes/YourDriveName

YourDriveName की जगह असली volume name डालें। output में उस volume पर open file वाला हर प्रोसेस दिखता है, जिसमें शामिल है:

  • COMMAND — प्रोसेस का नाम
  • PID — प्रोसेस ID
  • USER — कौन सा user account इसे चला रहा है
  • NAME — जिस खास file path को access किया जा रहा है

आम तौर पर आपको क्या दिखेगा

lsof के output में आम तौर पर ये अड़चनें दिखती हैं:

  • mds या mds_stores — Spotlight indexing
  • QuickLookUIService — QuickLook thumbnail बनाना
  • cloudd, bird, या com.apple.iCloudDrive — iCloud sync
  • backupd — Time Machine
  • Finder — ड्राइव की ओर इशारा करती खुली Finder windows
  • Final Cut Pro या Premiere जैसे media apps जिनकी project files open हों

टिप: अगर lsof कुछ output न दे, तो उसे sudo के साथ चलाकर देखें ताकि बढ़ी हुई permissions मिलें: sudo lsof /Volumes/YourDriveName। कुछ system प्रोसेस सिर्फ़ root access के साथ ही दिखते हैं।

lsof क्या-क्या कर सकता है — जैसे PID के हिसाब से filter करना और command line से सीधे प्रोसेस को kill करना — इस पर गहराई से जानने के लिए देखें The lsof Command Explained for Mac Users

Terminal से प्रोसेस Quit करें

PID मिल जाने के बाद, आप प्रोसेस को quit कर सकते हैं:

kill -15 <PID>

अगर वह जवाब न दे, तो force quit तक बढ़ें:

kill -9 <PID>

फिर ड्राइव को दोबारा eject करके देखें।

तरीका 3: विकल्प के रूप में fuser

fuser एक और Terminal command है जो बताती है कि कौन से प्रोसेस किसी file या filesystem को इस्तेमाल कर रहे हैं। यह lsof से कम विस्तृत है पर पढ़ने में तेज़ है:

sudo fuser /Volumes/YourDriveName

इसका output बस PIDs की एक list होती है। इनके साथ प्रोसेस names पाने के लिए इसे ps के साथ जोड़ें:

sudo fuser /Volumes/YourDriveName | xargs ps -p

जब आपको किसी लंबी lsof table को खंगाले बिना झटपट जवाब चाहिए हो, तब यह काम का है।

आम तौर पर रोकने वाले प्रोसेस और उनका इलाज

Spotlight (mds, mds_stores)

Spotlight नई ड्राइव को अपने-आप index करता है। अगर आप कोई बड़ी ड्राइव जोड़ते हैं, तो indexing कई मिनट या घंटों तक चल सकती है। इसे फ़िलहाल रोकने के लिए System Settings → Siri & Spotlight → Spotlight Privacy खोलें और ड्राइव को exclusion list में जोड़ दें। या फिर Terminal से mds को quit करें — Spotlight बाद में खुद-ब-खुद फिर शुरू हो जाएगा।

QuickLook (QuickLookUIService)

जब आप Finder में किसी ड्राइव को browse करते हैं तो QuickLook preview thumbnails बनाता है। Finder window बंद करने के बाद भी यह file handles खुले रख सकता है। QuickLook Is Holding Your Drive Hostage इसे विस्तार से समझाता है — छोटा सा हल यही है कि Terminal या किसी समर्पित tool से QuickLook प्रोसेस को quit कर दें।

iCloud और Dropbox

अगर आपने external ड्राइव पर sync data रखा है, तो sync services उन्हें किसी और folder की तरह ही मानती हैं। upload या conflict resolution के दौरान वे files खुली रखती हैं। How to Stop iCloud and Dropbox From Blocking Drive Ejection बताता है कि eject करने से पहले sync को कैसे रोकें।

Finder

Finder खुद भी ejection रोक सकता है, अगर ड्राइव की contents दिखाती कोई window खुली हो, या कोई file copy चल रही हो। ड्राइव की ओर इशारा करती सभी Finder windows बंद करें, या Apple menu से Finder को quit करके दोबारा launch करें।

Media और Creative Apps

Final Cut Pro, Premiere, Logic और इनके जैसे apps जब तक project loaded रहता है तब तक project files खुली रखते हैं। eject करने से पहले project बंद करें — सिर्फ़ app window नहीं। workflow के हिसाब से सलाह के लिए देखें Using External Drives With Final Cut Pro Without Ejection Problems

रोज़मर्रा के इस्तेमाल के लिए Terminal क्यों असुविधाजनक है

lsof वाला तरीका काम तो करता है, पर इसमें झंझट है। आपको करना पड़ता है:

  1. Terminal खोलना
  2. volume का सही नाम जानना
  3. अनजाना output पढ़ना-समझना
  4. PIDs और प्रोसेस names ढूँढना
  5. एक अलग kill command चलाना
  6. eject करने के लिए वापस Finder पर जाना

अगर आप कोई developer या sysadmin हैं जिसका ज़्यादातर वक्त Terminal में बीतता है, तो ठीक है। पर अगर आप कोई video editor या रोज़मर्रा के Mac user हैं जो बस ड्राइव को सुरक्षित ढंग से unplug करना चाहते हैं, तो दो सेकंड के काम के लिए यह बहुत ताम-झाम है।

चेतावनी: चाहे आप कितने भी बेसब्र हों, बिना eject किए ड्राइव को खींचकर निकालने से बचें — इससे filesystem खराब हो सकता है, खासकर exFAT या NTFS में formatted ड्राइव पर। खतरे असली हैं और इन पर विस्तार से चर्चा है Can Unplugging an External Drive Without Ejecting Damage It? में।

तेज़ तरीका: एक नज़र में रोकने वाला प्रोसेस देखें

Ejecta ठीक वही करता है जो lsof करता है, पर नतीजा ठीक उसी पल आपके menu bar में सामने ला देता है जब आपको ज़रूरत होती है। icon पर क्लिक करें, देखें कि कौन सा प्रोसेस आपकी ड्राइव पकड़े बैठा है, उसे quit करने के लिए क्लिक करें, और eject कर दें — न Terminal, न output खंगालना, न windows के बीच जाना-आना।

यह उन्हीं मामलों को संभालता है जो लोगों को सबसे ज़्यादा उलझाते हैं: background में चलता Spotlight, thumbnail cache पकड़े बैठा QuickLook, या वह sync daemon जो छोड़ता ही नहीं। प्रोसेस का नाम ठीक वहीं, पढ़ने लायक रूप में मौजूद होता है, और उसे हल करने के लिए बस एक ही action।

झटपट संदर्भ: कौन सा तरीका कब इस्तेमाल करें

स्थिति सबसे अच्छा तरीका
आप समझना चाहते हैं कि हो क्या रहा है Terminal में lsof
आपको झटपट एक बार का जवाब चाहिए Terminal में fuser
आप यह अक्सर करते हैं और कोई झंझट नहीं चाहते Ejecta menu bar app
आप किसी ज़िद्दी system प्रोसेस से जूझ रहे हैं sudo lsof + kill

अगर आप बार-बार “disk in use” वाली दीवार से टकरा रहे हैं, तो Ejecta download करें और रोकने वाले प्रोसेस का नाम बस एक क्लिक की दूरी पर रखें — कोई Terminal नहीं चाहिए।