sshfs ডিভাইস ব্যস্ত


30

আমি sshfs ব্যবহার করে একটি রিমোট ফাইল সিস্টেম স্থাপন করেছি (সংস্করণ ২.৮.৪)

sshfs -o allow_root joeuser@example.com: ./example

তবে এটি আনমাউন্ট করা ব্যর্থ

> fusermount -u example
umount: /home/joeuser/example: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

এই ত্রুটিটির কারণ কী হতে পারে এবং কীভাবে কেউ এটি সমাধান করতে পারে সে সম্পর্কে কোনও ধারণা?

উত্তর:


14

কিছু প্রোগ্রাম আপনি যে ফাইল ফাইলটি আনমাউন্ট করার চেষ্টা করছেন তাতে একটি ফাইল ব্যবহার করছে। এটি পড়তে বা লেখার জন্য, একটি বর্তমান ডিরেক্টরি বা আরও কিছু অস্পষ্ট কেসগুলির জন্য খোলা ফাইল হতে পারে। এমনকি এটি ফাইল সিস্টেমের একটি ডিরেক্টরি একটি মাউন্ট পয়েন্ট হওয়ার কারণেও হতে পারে।

তদন্ত করতে, চালান lsof +f -- example। প্রক্রিয়া (এস) ফাইল-সিস্টেমটি কী ব্যবহার করছে তা এটি বলবে। এগুলি ফাইলগুলি বন্ধ করা, তাদের হত্যা করা বা আনমাউন্ট অপারেশন স্থগিত করার বিষয়ে আপনার নিজের রায় করুন।


আশ্চর্যজনকভাবে lsof একটি gvfsd- সংরক্ষণাগার প্রক্রিয়াটি দেখায় নি, যা কোনও ফাইল ম্যানেজার জিইআইআইয়ের একটি সংরক্ষণাগার ফাইল খোলার (এবং বন্ধ?) থেকে বাদ পড়েছিল। সুতরাং, এছাড়াও পরীক্ষা করুন ps aux | grep gvfsd-archive
আলেক্সেই

সতর্কতা দিয়েছিল যে lstat কার্যকর করতে পারে না এবং তথ্য অসম্পূর্ণ হতে পারে, এবং অপরাধীর তালিকা দেয় নি। আমার ক্ষেত্রে, আমার মাউন্টযুক্তটির ভিতরে ওয়ার্কিং ডিরেক্টরি সহ একটি টার্মিনাল খোলা ছিল।
জনিস এলমারিস

36

আমি মনে করি আপনি একটি অলস আনমাউন্ট চান:

sudo umount -l example

1
আমি মনে করি আপনার পরামর্শটি ভুল। ম্যানুয়াল পৃষ্ঠা অনুসারে অলস অমাউন্ট Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem *as soon as it is not busy* anymore। সুতরাং এটি মূল সমস্যাটি সমাধান করবে না। @ গিলসের সাথে সম্মত, lsofএখানে সহায়তা করা উচিত।

2
আসলে, এটি আমার পক্ষে কাজ করেছিল। lsof কোনও খোলা ফাইল খুঁজে পাওয়া যায় নি তবে umount -lকাজ করেছে।
21:34

1
এই সমাধানটি আমার পক্ষেও কাজ করেছিল!
ড্যান

1
Sshfs এর সাথে একই সমস্যাটি অভিজ্ঞ, এটি আমার জন্যও কাজ করেছিল।
অরুন

4

আমার সবেমাত্র এই সমস্যা ছিল এবং kill -9মাউন্ট করা ফাইল সিস্টেম থেকে পড়া প্রক্রিয়া করতে পারিনি । kill -9পরেও কাজ করে নি fusermount -zu /mount/pointবা umount -l /mount/point(যা কাজ)। কাজটিই হয়েছিল একমাত্র pkill -9 sshfs


1
fusermount -zu /mount/pointআমার জন্য কাজ। ধন্যবাদ!
ostrokach

3

চলমান উবুন্টু, man fusermountএকটি -zবিকল্প সম্পর্কে জানায় , যা "অলস আনমাউন্ট" হিসাবে নথিভুক্ত করা হয়। এটি সম্পর্কিত বলে মনে হচ্ছে, তবে একটি নিশ্চিতকরণের দরকার যা এই অন্য ম্যান পেজ দ্বারা দেওয়া হয়েছে: ফুস্রামাউন্ট (man.he.net) , যা বলেছে "অলস আনমাউন্ট (উত্স এখনও ব্যস্ত থাকলেও কাজ করে)") এটিতে ব্যবহার করা আবশ্যক সঙ্গে-u , -zএকা বিকল্প, একটি ত্রুটি উত্পাদন করা হবে। আমি -zবিকল্পটি চেষ্টা করে দেখেছি এবং এটি কৌতুকটি করেছে তা নিশ্চিত করতে পারি, তবে এটি স্পষ্টতই খুব বেশি কৌশল হিসাবে দেখায়: এটি ঠিক কী করে? ডিরেক্টরিটি আর ব্যস্ত না হওয়ার সাথে সাথে এটিকে স্বয়ংক্রিয়ভাবে আনমাউন্ট করা হবে? আমি জানি না, নথিভুক্ত নয়, তাই অনিরাপদ।

সুতরাং এখানে আরও একটি বিকল্প, আরও ভার্বোজ, তবে নিরাপদ: লুপে যতটা সময় প্রয়োজন সাফল্য না পাওয়া পর্যন্ত আনমাউন্ট করার চেষ্টা করে।

echo -n "Unmounting...";
fusermount -u -q "$MOUNT_POINT";
OK="$?";

while [ "$OK" != "0" ]
do
   sleep 1;
   echo -n ".";
   fusermount -u -q "$MOUNT_POINT";
   OK="$?";
done

echo;

একটি ন্যূনতম অগ্রগতি প্রতিক্রিয়া রয়েছে, যাতে কেউ জানে যে কী চলছে এবং বিশ্বাস করা যায় না যে এটি ঝুলিয়ে দেওয়া হয়েছে।

এই বিকল্পটি শেল স্ক্রিপ্ট থেকে গ্রহণযোগ্য; কমান্ড লাইন মিথস্ক্রিয়া জন্য, -zবিকল্পের ব্যবহার আরও সহজ, কিন্তু একটি সম্ভবত অবশ্যই সচেতন হতে হবে ম্যান পৃষ্ঠা এটি নথিভুক্ত করে না এবং এটি ঠিক কী করে তা নিয়ে সন্দেহ থাকতে পারে।


2

আমি যখন sshfs ভাগ করে একটি ডিরেক্টরিতে টার্মিনাল উইন্ডো খোলা থাকে আমি প্রায়শই sshfs সহ "ডিভাইস ব্যস্ত" দেখি। টার্মিনাল থেকে প্রস্থান করা বা কোনও স্থানীয় অংশে ডিরেক্টরি পরিবর্তন করা তারপরে ফুস্রামাউন্ট চালানো আমার সমস্যাগুলি সমাধান করে।



1

আপনি যদি ইতিমধ্যে নিশ্চিত করে থাকেন যে কোনও প্রক্রিয়া এখনও "নিয়মিত" umounting চেষ্টা করার আগে ফাইল সিস্টেম ব্যবহার করছে না:

  • fuser -vm /mount/point এবং / অথবা
  • lsof /mount/point তাদের খুঁজে পেতে,
  • প্রস্থান / হত্যা / কি_সামান্য_ও_তার সাথে যাতে তারা /mount/pointআর ব্যবহার না করে,

চেষ্টা করুন:

  • pkill -KILL sshfs এবং তারপর
  • fusermount -u /mount/point

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

এছাড়াও, যদি আপনি চান যদি নেটওয়ার্ক সংযোগটি নষ্ট হয়ে যায় তখন স্বয়ংক্রিয়ভাবে umount করতে sshfs, আই / ও ত্রুটির এসএসএফ ব্যবহার করে অ্যাপ্লিকেশনগুলিকে অবহিত করতে (যাতে তারা সীমাহীনভাবে আটকে না যায়), এর সাথে মাউন্ট করুন:

  • sshfs -o ServerAliveInterval=15 remote-srv:/remote/dir /local/mountpoint

যখন কোনও ডেটা এক্সচেঞ্জ করা হয় না, আপনার sshক্লায়েন্ট সার্ভারের কাছ থেকে প্রতিক্রিয়া পেতে পারে কিনা তা প্রতি 15 সেকেন্ডে চেক করবে। যদি 3 টি চেক ব্যর্থ হয় তবে এটি সংযোগ বিচ্ছিন্ন হয়ে যাবে এবং সর্বস্বত্ব করবে।

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