নেটিভ ত্রুটি প্রতিক্রিয়া: ENOSPC: ফাইল পর্যবেক্ষকদের সংখ্যার জন্য সিস্টেমের সীমা পৌঁছেছে


125

আমি একটি নতুন ফাঁকা প্রতিক্রিয়া নেটিভ অ্যাপ্লিকেশন সেটআপ করেছি।

কয়েকটি নোড মডিউল ইনস্টল করার পরে আমি এই ত্রুটি পেয়েছি।

Running application on PGN518.
internal/fs/watchers.js:173
   throw error;
   ^

Error: ENOSPC: System limit for number of file watchers reached, watch '/home/badis/Desktop/react-native/albums/node_modules/.staging'
   at FSWatcher.start (internal/fs/watchers.js:165:26)
   at Object.watch (fs.js:1253:11)
   at NodeWatcher.watchdir (/home/badis/Desktop/react-native/albums/node modules/sane/src/node watcher. js:175:20)
   at NodeWatcher.<anonymous> (/home/badis/Desktop/react-native/albums/node modules/sane/src/node watcher. js:310:16)
   at /home/badis/Desktop/react-native/albums/node modules/graceful-fs/polyfills.js:285:20
   at FSReqWrap.oncomplete (fs.js:154:5)

আমি জানি এটি সমস্ত ফাইল পরিবর্তনের জন্য প্রহরী সদস্যদের দেখার জন্য পর্যাপ্ত জায়গার সাথে সম্পর্কিত নয়।

আমি জানতে চাই যে এখানে পদক্ষেপ নেওয়ার সেরা কোর্সটি কী?

আমি কি node_modulesফোল্ডারটি যুক্ত করে এড়ানো উচিত .watchmanconfig?


21
কোড, ত্রুটি বা আউটপুট কোনও পোস্টের পোস্ট নেই! stackoverflow.com/help/how-to-ask
রব

আপনি কি metro.config.js ব্যাকলিস্টে কিছু কোড যুক্ত করার কথা বিবেচনা করেছেন? এই স্ক্যান ভলিউম হ্রাস করা উচিত stackoverflow.com/questions/41813211/...
deepelement

উত্তর:


221

লিনাক্স ফাইল সিস্টেম ইভেন্টগুলি, স্বতন্ত্র ফাইল বা ডিরেক্টরিগুলি পর্যবেক্ষণ করতে ইনোটাইফাই প্যাকেজ ব্যবহার করে ।

যেহেতু প্রতিক্রিয়া / কৌণিক হট-পুনরায় লোড করে এবং সংরক্ষণের ফাইলগুলিকে পুনরায় সংশ্লেিত করে এটি সমস্ত প্রকল্পের ফাইলের উপর নজর রাখতে হবে। ইনোটিফাই ওয়াচ সীমা বৃদ্ধি করা সতর্কতা বার্তাগুলি লুকিয়ে রাখা উচিত।

আপনি সম্পাদনা চেষ্টা করতে পারেন

# insert the new value into the system config
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

# check that the new value was applied
cat /proc/sys/fs/inotify/max_user_watches

# config variable name (not runnable)
fs.inotify.max_user_watches=524288

36
সমস্যাটি কী, সমাধান কী, বা সমাধান কীভাবে সমস্যার সমাধান করে তা ব্যাখ্যা করে না।
নেটিভ কোডার

4
বাহ, আমি উপরের লিখিত মত একই সমস্যার মধ্যে দৌড়েছি, তবে এই সমাধানটি 100% এটি সমাধান করেছে। আপনাকে ধন্যবাদ
akolliy

4
কীভাবে আমরা আরও অনুমতি দেওয়ার পরিবর্তে নজরদারিদের কেড়ে নেব?
জোনাথন

4
কাজ করে তবে আমি এই অধিকারটি পড়লে এটি সীমা বাড়িয়ে তোলে। এর পরিবর্তে কি আমি খোলা প্রহরীদের বন্ধ করতে পারি?
জোজো

4
@ নেটিভ কোডার নতুন সংস্করণটি কি এই সমস্যার সমাধান করবে?
জারডিলিয়ার

144

এই ত্রুটির অর্থ এই যে সিস্টেম দ্বারা পর্যবেক্ষণ করা ফাইলগুলির সংখ্যাটি সীমাতে পৌঁছেছে !!

ফলাফল: কার্যকর করা আদেশটি ব্যর্থ হয়েছে! বা একটি সতর্কতা নিক্ষেপ করুন (যেমন একটি প্রতিক্রিয়া নেটিভ শুরু VSCode চালানো)

সমাধান:

সিস্টেম মনিটরিং ফাইলগুলির সংখ্যা সংশোধন করুন

উবুন্টু

sudo gedit /etc/sysctl.conf

নীচে একটি লাইন যুক্ত করুন

fs.inotify.max_user_watches=524288

তারপরে সেভ করে প্রস্থান করুন!

sudo sysctl -p

এটি পরীক্ষা করতে

তাহলে সমাধান হয়ে যায়!


ধন্যবাদ
ডেস্কটপযুক্ত

আরে, এটা আমার ক্ষেত্রে সমাধান হয়েছে। এছাড়াও আমার পোস্টে ভাগ করা হয়েছে। আপনাকে ধন্যবাদ
রশিদ খান

55

আপনি এটি সংশোধন করতে পারেন, যা অযাচিত পর্যবেক্ষকদের পরিমাণ বাড়িয়ে তুলছে।

আপনি যদি প্রযুক্তিগত বিবরণে আগ্রহী না হন এবং কেবল শ্রবণ শোনার জন্য চান:

  • আপনি যদি ডেবিয়ান, রেডহ্যাট বা অন্য একটি অনুরূপ লিনাক্স বিতরণ চালাচ্ছেন তবে নিম্নলিখিতটি কোনও টার্মিনালে চালান:

    $ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

  • আপনি যদি আর্চলিনাক্স চালাচ্ছেন তবে পরিবর্তে নিম্নলিখিত কমান্ডটি চালান

    $ echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system

তারপরে এটি আপনার টার্মিনালে পেস্ট করুন এবং এটি চালানোর জন্য এন্টার টিপুন।


প্রযুক্তিগত বিবরণ

পরিবর্তনের জন্য ডিরেক্টরিগুলি নিরীক্ষণ করতে লিনাক্সে ডিফল্টরূপে অযৌক্তিকভাবে ব্যবহার শোনো Listen আপনি যে ফাইলগুলি পর্যবেক্ষণ করতে পারেন তার সংখ্যার জন্য সিস্টেম সীমাবদ্ধ হওয়া অস্বাভাবিক নয়। উদাহরণস্বরূপ, উবুন্টু লুসিডের (64 বিট) ইনোটিফাই সীমাটি 8192 এ সেট করা আছে।

কার্যকর করে আপনি আপনার বর্তমান ইনোটিফাই ফাইল ঘড়ির সীমা পেতে পারেন:

$ cat /proc/sys/fs/inotify/max_user_watches

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

আপনি একটি নতুন সীমা অস্থায়ী সেট করতে পারেন:

$ sudo sysctl fs.inotify.max_user_watches=524288
$ sudo sysctl -p

আপনি যদি নিজের সীমা স্থায়ী করতে চান তবে ব্যবহার করুন:

$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p

এছাড়াও আপনি মান দিতে মনোযোগ করার প্রয়োজন হতে পারে max_queued_eventsএবং max_user_instancesযদি শুনতে অভিযোগ উপর রাখে।


4
বাহ আপনাকে অনেক ধন্যবাদ, এটি আমার প্রকল্পটি বড় হওয়ার সাথে সাথে প্রতিক্রিয়া জেএসের সাথে একই সমস্যার জন্য আমার সমস্যার সমাধান করেছে তবে আমি ত্রুটিগুলি এবং আউট বুঝতে পারি না। এটি একটি যথাযথ উত্তর, আপনার দিনটি
শুভ হোক

4
কারও কারও পক্ষে এটির জন্য আরও ভাল সমাধান করা দরকার। নির্ভরতা পূর্ণ একটি হাত দিয়ে একটি নতুন প্রকল্প শুরু করার সময় আমার এই জাতীয় কিছু করা উচিত নয়।
প্যাট্রিক ডব্লিউ। ম্যাকমাহন

আপনার বিস্তারিত উত্তরের জন্য ধন্যবাদ! এটা আমাকে অনেক সাহায্য করেছে। আমি প্রতিক্রিয়াশীল নেটিভ বিকাশ করছি, আসলে আরএন ক্লাইমের এর আরও মূল্য প্রয়োজন। সুতরাং, আমি এটি সফলভাবে উপরের আদেশগুলি দিয়ে পরিবর্তন করেছি। আমি কেবল ভাবছি যে এর উচ্চতর মানটি খারাপভাবে কর্মক্ষমতা এবং মেমরির ব্যবহারকে প্রভাবিত করতে পারে?
মুনদাদ্দি

8

রিট্যাক্ট নোড_মডিউলগুলি মুছুন

rm -r node_modules

yarn or npm install

yarn start or npm start

ত্রুটি দেখা দিলে আবার এই পদ্ধতিটি ব্যবহার করুন


কেন এই কাজ করে? যদি এটি দেখা ফাইলগুলির সংখ্যা হ্রাস করে, প্রয়োজনীয় নির্ভরতা পুনরায় ইনস্টল না করে ফাইলগুলি আবার যুক্ত করে?
আইসড ওয়াটার

4
@ স্নেহযুক্ত জল মোছার নোড_মডিউলগুলি কোনও ঘড়ি না রেখে একটি নতুন ইনোটিফাই ইনস্ট্যান্স তৈরি করে causes প্রতিক্রিয়াটিতে সম্ভবত একটি ফুটো রয়েছে যার ফলে ইনোটাইফাই দৃষ্টান্তগুলি পূর্ণ হয়ে যায়, এজন্য ত্রুটিটি প্রথম স্থানে উপস্থিত হয়।
অ্যাকাউন্ট

7

থেকে সরকারী নথি :

"ভিজ্যুয়াল স্টুডিও কোড এই বৃহত ওয়ার্কস্পেসের ফাইল পরিবর্তনের জন্য দেখতে অক্ষম" (ত্রুটি ENOSPC)

আপনি যখন এই বিজ্ঞপ্তিটি দেখেন, এটি ইঙ্গিত করে যে ভিএস কোড ফাইলের সন্ধানকারীগুলি হ্যান্ডলগুলির বাইরে চলেছে কারণ কর্মক্ষেত্রটি বড় এবং এতে অনেকগুলি ফাইল রয়েছে। বর্তমান সীমাটি চালিয়ে দেখা যায়:

cat /proc/sys/fs/inotify/max_user_watches

সম্পাদনা করে সীমাটি সর্বোচ্চে বাড়ানো যেতে পারে

/etc/sysctl.conf

এবং ফাইলটির শেষে এই লাইনটি যুক্ত করা:

fs.inotify.max_user_watches = 524288

নতুন মানটি তখন চালিয়ে লোড করা যায়

sudo sysctl -p

নোট করুন যে আর্চ লিনাক্স কিছুটা আলাদাভাবে কাজ করে, বিশদ জন্য নিরক্ষর পর্যবেক্ষকদের পরিমাণ বাড়িয়ে দেখুন।

524,288 ফাইল দেখা যায় এমন সর্বাধিক সংখ্যক ফাইল, আপনি যদি এমন পরিবেশে থাকেন যা বিশেষত স্মৃতিশক্তি দ্বারা সীমাবদ্ধ থাকে তবে আপনি সংখ্যাটি কমিয়ে আনতে ইচ্ছুক হতে পারেন। প্রতিটি ফাইলের ঘড়িতে 540 বাইট (32-বিট) বা ~ 1 কেবি (-৪-বিট) লাগে, সুতরাং ধরে নেওয়া যে সমস্ত 524,288 টি ঘড়ি গ্রাস করা হয়েছে, যার ফলস্বরূপ 256MB (32-বিট) বা 512 এমবি (64৪-বিট) এর উপরের সীমানা তৈরি হয় )।

অন্য একটি বিকল্প

ফাইলগুলির সাথে ভিএস কোড ফাইল পর্যবেক্ষক থেকে নির্দিষ্ট ওয়ার্কস্পেস ডিরেক্টরিগুলি বাদ দেওয়া। ফাইল.ওয়াচারএক্সক্লুডের জন্য ডিফল্ট নোড_মডিউলগুলি এবং .git এর অধীনে কিছু ফোল্ডার বাদ দেয় তবে আপনি ভিএস কোড ট্র্যাক করতে চান না এমন অন্যান্য ডিরেক্টরি যুক্ত করতে পারেন।

"files.watcherExclude": {
    "**/.git/objects/**": true,
    "**/.git/subtree-cache/**": true,
    "**/node_modules/*/**": true
  }

7

আমি sudo ie ব্যবহার করে এই সমস্যাটি সমাধান করেছি

sudo yarn start

বা

sudo npm start

4
যদিও এই আদেশগুলি প্রশ্নটির সমাধান করতে পারে, কীভাবে এবং কেন এটি সমস্যার সমাধান করে তার ব্যাখ্যা সহ আপনার পোস্টের মান উন্নত করতে সত্যই সহায়তা করবে এবং সম্ভবত আরও বেশি ভোটের ফলাফল হবে। মনে রাখবেন যে আপনি ভবিষ্যতে পাঠকদের জন্য প্রশ্নের উত্তর দিচ্ছেন, কেবল এখন যে ব্যক্তি জিজ্ঞাসা করছেন তা নয়। দয়া করে সম্পাদনা ব্যাখ্যা যোগ করতে পারেন এবং সীমাবদ্ধতা এবং অনুমানের কি প্রয়োগ একটি ইঙ্গিত দিতে আপনার উত্তর।
ব্রায়ান

এটি এখন পর্যন্ত সহজ সমাধান ডাব্লু / ও যে কোনও কনফিগারেশন পরিবর্তন করছে তবে @ ব্রায়ান যেমন বলেছেন, একটি রেফারেন্স বা ব্যাখ্যা একটি কার্যকর উপায়ে সহায়তা করবে।
জিনিয়াস

এটি সবচেয়ে খারাপ সমাধান। sudoএই ধরণের ব্যবহারের জন্য উদ্দিষ্ট নয় এবং এটি অন্যান্য সমস্যার কারণও তৈরি করতে পারে।
ইগর পরা

2

এটি একটি নোড অ্যাপ্লিকেশন দিয়ে হয়েছিল যা আমি ডেবিয়ান ভিত্তিক ডিস্ট্রোতে বিকাশ করছিলাম। প্রথমত, একটি সাধারণ পুনঃসূচনা এটি সমাধান করে তবে এটি আবার অন্য অ্যাপে ঘটে।

যেহেতু এটি ফাইলের নিরীক্ষণ করতে এবং ডিরেক্টরিতে পরিবর্তনগুলির সন্ধানের জন্য অযৌক্তিকভাবে নজরদারিকারী সংখ্যার সাথে সম্পর্কিত , তাই আপনাকে সীমা হিসাবে উচ্চতর সংখ্যা নির্ধারণ করতে হবে:

আমি এখানে পোস্ট করা উত্তর থেকে এটি সমাধান করতে সক্ষম হয়েছি (তাকে ধন্যবাদ!)

সুতরাং, আমি দৌড়েছি:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers#the-technical-details এ কী ঘটছে সে সম্পর্কে আরও পড়ুন

আশা করি এটা সাহায্য করবে!


মাঞ্জারোতে দুর্দান্ত কাজ!
ওমর দুলিমি

1

ইতিমধ্যে @ স্নিশালাকা দ্বারা চিহ্নিত হিসাবে, আপনি নিরক্ষর পর্যবেক্ষকদের সংখ্যা বাড়াতে পারেন।

তবে আমি মনে করি ডিফল্ট নম্বরটি যথেষ্ট পরিমাণে বেশি এবং কেবল তখনই পৌঁছে যায় যখন প্রক্রিয়াগুলি সঠিকভাবে পরিষ্কার না হয়। সুতরাং, সম্পর্কিত গিথুব ইস্যুতে প্রস্তাবিত হিসাবে আমি কেবল আমার কম্পিউটারটি পুনরায় চালু করেছি এবং ত্রুটির বার্তাটি গেছে।


0

আমি একটি লিনাক্সমিন্ট ডিস্ট্রোতে এই সমস্যার মুখোমুখি হয়েছি । আমার অ্যাপটিতে / সর্বজনীন ফোল্ডারে আমি যখন অনেকগুলি ফোল্ডার এবং সাবফোল্ডার / ফাইল যুক্ত করেছি তখন এটি ঘটেছিল বলে মনে হয়েছিল। আমি এই ফিক্সটি প্রয়োগ করেছি এবং এটি ভালভাবে কাজ করেছে ...

$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf

ডিরেক্টরি / ইত্যাদি ফোল্ডারে পরিবর্তন করুন: cd /etc

তারপরে এটি চালান: sudo systcl -p

আপনার টার্মিনালটি npm startআবার বন্ধ করে দিতে হবে এবং এটি আবার কাজ করতে পারে।

যদি এটি ব্যর্থ হয় তবে আমি বিশ্বব্যাপী প্রতিক্রিয়া-স্ক্রিপ্টগুলি ইনস্টল করার এবং এটির সাথে সরাসরি আপনার অ্যাপ্লিকেশন চালানোর পরামর্শ দিচ্ছি।

$ npm i -g --save react-scripts

তারপরে আপনার অ্যাপ্লিকেশন চালানোর জন্য npm startরান react-scripts startকরার পরিবর্তে


0

এই লিঙ্কটি উল্লেখ করুন [1]। ভিজ্যুয়াল স্টুডিও কোড এই ত্রুটি বার্তার জন্য একটি সংক্ষিপ্ত ব্যাখ্যা উল্লেখ করেছে। আমিও একই ত্রুটির মুখোমুখি হয়েছি। আপেক্ষিক ফাইলটিতে নীচের প্যারামিটার যুক্ত করা এই সমস্যার সমাধান করবে।

 fs.inotify.max_user_watches=524288

[1] https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in-this-large-workspace-error-enospc


-1
  1. প্রথমত আপনি মূল সুযোগগুলি দিয়ে প্রতিবার চালাতে পারেন

    sudo এনপিএম শুরু

  2. অথবা আপনি নোড_মডিউলগুলি ফোল্ডারটি মুছতে পারেন এবং npm installআবার ইনস্টল করতে ব্যবহার করতে পারেন

  3. অথবা আপনি স্থায়ী সমাধান পেতে পারেন

    echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p


-5

লাইব্রেরি ব্যবহার করে wifiআমার একই সমস্যা ছিল কিন্তু আমি যখন আমার নেটওয়ার্ক পরিবর্তন করেছি তখন এটি পুরোপুরি কার্যকর হয়েছিল।

আপনার নেটওয়ার্ক সংযোগ পরিবর্তন করুন


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