"ডিভাইস বা রিসোর্স ব্যস্ত" কীভাবে পাবেন?


229

আমি rm -rfএকটি ফোল্ডার চেষ্টা করেছি এবং "ডিভাইস বা সংস্থান ব্যস্ত" পেয়েছি।

উইন্ডোজে, আমি এটি সমাধান করতে লকহান্টার ব্যবহার করতাম। লিনাক্স সমতুল্য কি? (দয়া করে একটি সহজ উত্তর হিসাবে পদ্ধতি "এই আনলক", এবং না মত সম্পূর্ণ নিবন্ধ দিতে এই এক । যদিও দরকারী আছেন, আমি বর্তমানে শুধু ASimpleMethodThatWorks ™ আগ্রহী)


5
ধন্যবাদ এটি কার্যকর ছিল - আমি লিনাক্স থেকে উইন্ডোজ আসছিলাম, lsof - লকহান্টারের সমতুল্য সন্ধান করছিলাম।
সোনিয়া হ্যামিল্টন

3
কি খারাপ অবস্থা? উইন্ডোজের মতো ইউনিক্স আপনাকে খোলা ফাইলগুলি মুছতে বাধা দেয় না । এ কারণেই আপনি চালিয়ে আপনার পুরো সিস্টেমটি মুছতে পারেন rm -rf /... এটি আনতে / বিন / আরএম সহ প্রতিটি ফাইল মুছে ফেলা হবে।
psusi

1
@ স্পুসী, এটি ভুল। আপনার কাছে হয় তথ্যের খারাপ উত্স রয়েছে বা কেবল স্টাফ আপ করছেন। উইন্ডোজের মতো লিনাক্সেও ফাইল এবং ডিভাইস লক রয়েছে। যদিও এটি একধরণের ভাঙ্গা। 0 পয়েন্টার.ডে
ব্লগ /

1
@ ফুবার্বিকিউ, সাধারণত এগুলি কেবলমাত্র পরামর্শকৃত লক এবং ম্যান পৃষ্ঠাটি অন্তত ইঙ্গিত করে যে এগুলি কেবল পঠন / লেখার জন্য, লিঙ্কমুক্ত নয়।
psusi

উত্তর:


232

আপনি যে সরঞ্জামটি চান তা হ'ল তালিকারlsof জন্য উন্মুক্ত ফাইল

এতে অনেকগুলি বিকল্প রয়েছে, সুতরাং ম্যান পৃষ্ঠাটি পরীক্ষা করুন, তবে আপনি যদি কোনও ডিরেক্টরিতে সমস্ত খোলা ফাইল দেখতে চান:

lsof +D /path

এটি ফাইল সিস্টেমের অধীনে পুনরাবৃত্তি করবে /path, তাই বড় ডিরেক্টরি গাছগুলিতে এটি করা থেকে সাবধান থাকুন।

একবার আপনি যখন জানতে পারবেন কোন প্রসেসে ফাইলগুলি খোলা আছে, আপনি সেই অ্যাপ্লিকেশনগুলি থেকে বেরিয়ে যেতে পারেন, বা kill(1)কমান্ড দিয়ে এটিকে হত্যা করতে পারেন ।


46
কোনও ফল না হলে কী হবে?
সামুদ্রিক

22
@মারাইনস: নীচে আরও একটি ফাইল সিস্টেম মাউন্ট করা হয়েছে কিনা তা পরীক্ষা করুন /path। লুকানো "ওপেন ফাইল" এর একটি কারণ।
ক্যামহ

2
lsof কমান্ড সরাসরি পথে কাজ করে না। সুতরাং মূলত পথের অবস্থানের দিকে যেতে হবে এবং তারপর ব্যস্ত_ফায়াল চালানো দরকার তারপর সমস্ত প্রক্রিয়াটি মেরে
ফেলুন

4
lsofমনে হচ্ছে আমার পক্ষে কিছুই করবে না: lsof storage/logs/laravel.logকিছুই ফিরিয়ে দেয়নি এবং করল lsof +D storage/logs/umountসঙ্গে প্রতিক্রিয়া not mounted
রায়ান 1

1
শুধু @ ক্যামের উত্তরটি বিশদভাবে জানাতে: ব্যবহার করুন mount | grep <path>। এটি দেখায় যে কোনওটিতে /dev/<abc>মাউন্ট করা যেতে পারে <path>। ব্যবহার করুন sudo umount -lf /dev/<abc>এবং তারপরে অপসারণ করার চেষ্টা করুন <path>। আমার জন্য কাজ কর. ধন্যবাদ @ ক্যামহ
বিকাশ গোয়েল

107

কখনও কখনও এটি মাউন্ট সংক্রান্ত সমস্যার ফলস্বরূপ, তাই আমি যে ফাইল সিস্টেম বা ডিরেক্টরিটি সরিয়ে দেওয়ার চেষ্টা করছি তা আমি আনমাউন্ট করব:

অমাউন্ট / পথ


5
এখন এক চতুর্থাংশ। ধন্যবাদ মানুষ, তুমি আমার রাত বাঁচিয়েছ অত্যধিক হাসিখুশি. একক লাইনে - এত সময় নষ্ট
আইয়ন.প্রিম

1
আমার সমস্যাটি ছিল একটি লগ ডিরেক্টরি / dev / mapper / vg00-root হিসাবে মাউন্ট করা
স্পিকোলিএন

1
উইন্ডারগুলিতে একই রকম জ্যাম থেকে বেরিয়ে আসতে আমাকে সহায়তা করেছিল।
জোন

1
আমার ক্ষেত্রে, জেনকিনস টাস্ক
অবসরের

1
আমার ক্ষেত্রে, উবুন্টু ডেস্কটপ সহ আনমাউন্ট কাজ করেছে !! ধন্যবাদ
জে রিচার্ডস্

14

আমি fuserএই জাতীয় জিনিস জন্য ব্যবহার করি । এটি মাউন্টের মধ্যে কোন প্রক্রিয়া কোনও ফাইল বা ফাইল ব্যবহার করছে তা তালিকাভুক্ত করবে।


fuserআপনি যখন কোনও ফাইল সিস্টেম আনমাউন্ট করতে চান কেবল তখনই নির্দিষ্ট ক্ষেত্রে সহায়তা করে। এখানে সমস্যাটি নির্দিষ্ট ফাইলটি কী ব্যবহার করছে তা সন্ধান করা।
গিলস

@ গিলস: ফাইলগুলির জন্যও কাজ করে।
বিলথোর

দুঃখিত, ভুল আপত্তি: fuserএখানে সহায়তা করে না কারণ সমস্যাটি হ'ল ডিরেক্টরি ট্রিতে সমস্ত খালি ফাইল খুঁজে পাওয়া। আপনি lsofসমস্ত ফাইল এবং ফিল্টার প্রদর্শন করতে বা এটি পুনরাবৃত্তি করতে বলতে পারেন ; fuserএর মতো কোনও মোড নেই এবং প্রতিটি ফাইলে ডাকতে হবে।
গিলস

@ গাইলস: fuserকাজগুলি তালিকাবদ্ধ করবে। চেষ্টা করুন fuser /var/log/*, যদি কোনও লগ খোলা থাকে তবে এটি কোনটি এবং কার কাছে এটি খোলা আছে তা তা জানিয়ে দেবে। যদি একটি সাধারণ ওয়াইল্ডকার্ড, কাজ করে না, findসাথে বা ছাড়া xargsকাজটি করবে।
বিলথোর

1
lsofথাকাকালীন আমার পথে ছিল না fuser, আমাকে মারার জন্য আপত্তিকর প্রক্রিয়া আইডি সন্ধান করার অনুমতি দিয়েছে, সুতরাং +1 + ধন্যবাদ।
স্টিভস্লিভা

12

সমাধান এখানে:

  1. ডিরেক্টরিতে যান এবং টাইপ করুন ls -a
  2. আপনি একটি .xyzফাইল পাবেন
  3. vi .xyz এবং ফাইলের বিষয়বস্তু কি তা সন্ধান করুন
  4. ps -ef | grep username
  5. আপনি অষ্টম কলামে (শেষ সারি) .xyz সামগ্রী দেখতে পাবেন
  6. kill -9 job_ids - যেখানে জব_আইডিএস 8 তম কলামে ত্রুটিজনিত কারণে সম্পর্কিত তৃতীয় স্তরের মান
  7. এখন ফোল্ডার বা ফাইল মুছতে চেষ্টা করুন।

4
এই রহস্যজনক ফাইলগুলি কোথা থেকে আসছে তা জানা আকর্ষণীয় হবে।
জন ডব্লিউ এইচ স্মিথ

9

আমার এই একই সমস্যা ছিল, @ ক্যামের সুপারিশ দিয়ে শুরু করে একটি ওয়ান-লাইনার নির্মিত হয়েছিল:

lsof +D ./ | awk '{print $2}' | tail -n +2 | xargs kill -9

awkকমান্ড PIDS grabs। tail"PID,": কমান্ড বিরক্তিকর প্রথম এন্ট্রি পরিত্রাণ পায়। আমি -9হত্যার জন্য ব্যবহার করেছি , অন্যের কাছে নিরাপদ বিকল্প থাকতে পারে।


1
এটি আরো সার্বজনীন আপনি ./ লগ পরিবর্তে বর্তমান ডিরেক্টরির জন্য / ব্যবহার করতে পারেন করা
user2589273

ভাল পয়েন্ট, @ ব্যবহারকারী 2589273। আপডেট করা হয়েছে।
কোয়েলটন বি। হিগিনবটম

5

যখন একটি স্বয়ংক্রিয় পরীক্ষা একটি ramdisk তৈরি করেছিল তখন আমার এই সমস্যা হয়েছিল। অন্যান্য জবাবগুলিতে প্রস্তাবিত আদেশগুলি, lsofএবং fuserকোনও সহায়ক ছিল না। পরীক্ষার পরে আমি এটিকে আনমাউন্ট করার চেষ্টা করেছি এবং তারপরে ফোল্ডারটি মোছার চেষ্টা করব। আমি যুগে যুগে সত্যিই বিভ্রান্ত ছিলাম কারণ আমি এ থেকে মুক্তি পেতে পারি না - আমি "ডিভাইস বা সংস্থান ব্যস্ত" পেতে থাকি !

দুর্ঘটনাক্রমে আমি র‌্যামডিস্ক থেকে কীভাবে মুক্তি পেতে পারি তা জানতে পেরেছি। mountকমান্ডটি চালানো হয়েছিল তার একই পরিমাণে আমাকে আনমাউন্ট করতে হয়েছিল , অর্থাৎ sudo umount path

এটি স্বয়ংক্রিয় পরীক্ষার সাহায্যে তৈরি করা হয়েছিল বলে, এটি অনেকবার মাউন্ট হয়েছিল, তাই কেন আমি পরীক্ষার পরে একবার এটিকে আনমাউন্ট করে কেবল এ থেকে মুক্তি পেতে পারি না। সুতরাং, আমি ম্যানুয়ালি এটিকে বহুবার আনমাউন্ট করার পরে অবশেষে এটি আবার একটি নিয়মিত ফোল্ডারে পরিণত হয়েছিল এবং আমি এটি মুছতে পারি।

আশা করি এটি এই সমস্যাটি জুড়ে আসা অন্য কাউকে সহায়তা করতে পারে!


5

এনএফএস নেটওয়ার্ক ফাইল সিস্টেম রয়েছে এমন সার্ভারগুলিতে আমি এটি প্রায়শই অনুভব করি। আমি ধরে নিচ্ছি যে এটি ফাইল সিস্টেমের সাথে কিছু করার আছে কারণ যেহেতু ফাইলগুলি সাধারণত নামকরণ করা হয় .nfs000000123089abcxyz

আমার সাধারণ সমাধানটি হ'ল ফাইলটির মূল ডিরেক্টরিটির নাম পরিবর্তন বা সরিয়ে নেওয়া, তারপরে এক-দু'দিন পরে ফিরে আসুন এবং ফাইলটি স্বয়ংক্রিয়ভাবে সরিয়ে ফেলা হবে, সেই সময়ে আমি ডিরেক্টরিটি মুছতে মুক্ত free

আমি সাধারণত সফ্টওয়্যার লাইব্রেরি ইনস্টল বা সংকলন করছি এমন ডিরেক্টরিগুলিতে এটি সাধারণত ঘটে থাকে।


4

প্রভাতকে উপরের প্রশ্নটি ছাড়িয়ে যখন আমি একটি এনএফএস প্রক্রিয়া আটকেছিলাম, পুনরায় এটি সমাধান করা হয়েছিল, তখন আমার ম্যাকোস হাই সিয়ারায় এই বিষয়টি ছিল had

ps -ef | grep name-of-busy-dir

আমাকে প্রক্রিয়া এবং পিআইডি (দুটি কলাম) দেখিয়েছে।

sudo kill -15 pid-here

ঠিক কর.


এটি আমার জন্যও কাজ করেছিল। কি -15?
ওআরকা

3

আপনার যদি সার্ভারটি অ্যাক্সেসযোগ্য হয়, চেষ্টা করুন

সার্ভার থেকে সেই দির মুছে ফেলা হচ্ছে

অথবা, umount করুন এবং আবার মাউন্ট করুন, চেষ্টা করুন umount -l: সাধারণ umount এ কোনও সমস্যার মুখোমুখি হলে অলস umount।

আমারও এই সমস্যা ছিল যেখানে

lsof +D path : কোনও আউটপুট দেয় না

ps -ef : কোনও প্রাসঙ্গিক তথ্য দেয় না

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.