নোড.জেএস: ত্রুটি পাওয়া: [নোডমন] অভ্যন্তরীণ ঘড়িটি ব্যর্থ হয়েছে: ENOSPC দেখুন


136

আমি প্রথমবারের মতো Node.jsআমার Ubuntu 14.04অপারেটিং সিস্টেমে ইনস্টল করেছি । আমিও ইনস্টল করেছি npm। আমার ইনস্টলেশন প্রক্রিয়াটির পরবর্তী ধাপটি ইনস্টল করা হয়েছিল nodemon। এই সব ভাল কাজ করে।


তবে, যখন আমি আমার কমান্ড লাইনে nodemonটাইপ করে চালিত হই, তখন আমি nodemon app.jsনিম্নলিখিত ত্রুটিটি পাই ...

[nodemon] 1.8.1 [nodemon] to restart at any time, enterটাকা [nodemon] watching: *.* [nodemon] startingapp.js নোড [nodemon] Internal watch failed: watch ENOSPC

ত্রুটির নীচে কমান্ড লাইনে ...

alopex@Alopex:~/Desktop/coding_dojo/week-9/javascript/node/testing_node$ Hello World

এটি কেন ঘটছে? নোডমনের জন্য এটি কি সাধারণ আচরণ? যদি তা না হয় তবে আমি কীভাবে এটি ঠিক করতে পারি?


পার্শ্ব নোটস ...

1) এটির ভিতরে app.jsএকটি Javascriptফাইল console.log(111)
2) nodeসংস্করণটি v0.10.25
3) npmসংস্করণ 1.3.10
4) nodemonসংস্করণ 1.8.1
5) ubuntuসংস্করণটি হ'ল ...

Distributor ID: Ubuntu
Description:    Ubuntu 14.04.3 LTS
Release:    14.04
Codename:   trusty

উত্তর:


451

দেখা যাচ্ছে যে আমার সর্বোচ্চ পোর্টগুলি সঠিকভাবে কনফিগার করা হয়নি। আমি নিম্নলিখিত কোডটি চালিয়েছি এবং এটি কার্যকর হয়েছে ...

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

এই আদেশটি যা করে তা হ'ল একক ব্যবহারকারীর জন্য অনুমোদিত ঘড়ির সংখ্যা বাড়ানো। ডিফল্টরূপে সংখ্যা কম হতে পারে (উদাহরণস্বরূপ 8192)। nodemonপরিবর্তনের জন্য বিপুল সংখ্যক ডিরেক্টরি দেখার চেষ্টা করার সময় এটিতে বেশ কয়েকটি ঘড়ি তৈরি করতে হয়, যা এই সীমাটি ছাড়িয়ে যেতে পারে।

আপনি এই সমস্যাটি এর দ্বারা সমাধানও করতে পারেন:

sudo sysctl fs.inotify.max_user_watches=582222 && sudo sysctl -p

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


6
কেউ কি আরও কিছু ব্যাখ্যা করতে পারে যা এটি করে এবং কেন এটি সাহায্য করতে পারে তার বিশদভাবে?
হিরিখ

11
@ হিনিরিচ, এটি কেবল অনুমান, আমার মনে হয় নোডেজগুলি ইনোটিফাই লাইব্রেরির মাধ্যমে ফাইল সিস্টেমের পরিবর্তনগুলি দেখছে। আমি মনে করি ব্যবহারকারীর জন্য সর্বাধিক সংখ্যক ঘড়ির সীমা রয়েছে, যা এই সেটিংটি একটি বৃহত্তর মানতে পরিবর্তিত হয়।
ri দেবরিম্বরীস

2
@ দেব্রিম্বারিস সঠিক!
এরিক -স্ল্যান্ড

3
এটি আমার সাথে উবুন্টু 14.04 থেকে উবুন্টু 16.04 এ যাওয়ার পরে ঘটেছিল। আপনার সমাধানটি আমার পক্ষেও কাজ করেছিল। আপনাকে ধন্যবাদ
ম্যাস্ত্রে সান

2
রাখুন যে /etc/sysctl.d/90-override.confআপনি আর্চ করছি যদি
OverCoder

28

এরিক, আপনি অন্য সমস্ত নোড প্রক্রিয়া দ্বারা খালি করতে পারেন

pkill -f নোড

এবং তারপরে আবার আপনার সার্ভারটি পুনরায় চালু করুন। এটি ঠিক তখন কাজ করবে।


7
ডাউনভোট কারণ এটি আমার ভিজ্যুয়াল স্টুডিও কোড উইন্ডোজকে হিমায়িত করেছিল।
লেক্সএইচ

এটি একটি কবজির মতো কাজ করছিল ... এখন অবধি! এখন এটি অকার্যকর, একই ত্রুটি পেয়ে।
নেস্টেল

28

চলমান নোড সার্ভারে নিম্নলিখিত ত্রুটি এবং সমাধানগুলি দেখায়:

নোডমন সার্ভার.জেএস

[নোডমন] 1.17.2

[নোডমন] যে কোনও সময় পুনরায় চালু করতে, প্রবেশ করুন rs

[nodemon] দেখছেন:

[নোডমন] শুরু হচ্ছে node server.js

[নোডমন] অভ্যন্তরীণ প্রহরীটি ব্যর্থ হয়েছে: ঘড়ি / হোম / অরুম 304 / জিন এনওএসপিসি

sudo pkill -f node

অথবা

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

19

এখানে আলোচনা হিসাবে , ENOSPCমানে Error No more hard-disk space available। কেন nodemonবা gulp-nodemon(আমার ক্ষেত্রে) এত বেশি মেমরির প্রয়োজন তা হ'ল এটি কোনও ফোল্ডারের সামগ্রীগুলি দেখছিল যা এটি করা উচিত নয়। যে নোডমনের ignoreসেটিংস রয়েছে তা ঠিক করতে নোডমনকে কী দেখতে হবে না তা জানাতে ব্যবহার করা যেতে পারে। এখানে নোডমনের নমুনা কনফিগারেশনটি দেখুন ।


ভাল চাকরি, এটিই মূল কারণ।
lutaoact

16
[nodemon] Internal watch failed: watch /home/Document/nmmExpressServer/bin ENOSPC
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! nmmexpressserver@0.0.0 start: `nodemon ./bin/www`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the nmmexpressserver@0.0.0 start script.

দৌড়ানোর সময় এই ত্রুটিটি পেয়েছি nodemon ./bin/www

সমাধানটি এমন একটি অ্যাটম উইন্ডোটি বন্ধ করে দিচ্ছিল যার প্রকল্প উইন্ডোতে ফোল্ডারগুলির পুরো ডিরেক্টরি খোলা ছিল।

আমি জানি না কেন তবে আমি ধরে নিচ্ছি যে এটম এবং নোডমন ফাইল / ফোল্ডারগুলি দেখার জন্য অনুরূপ প্রক্রিয়া ব্যবহার করে।


2
ঠিক আমার সমস্যা ছিল। আমি প্রকল্পের ইনস্টল ডিরেক্টরি থেকে পরমাণু চালু করতে খুশি। আমি এটমটি বন্ধ করে দিয়েছিলাম, এটি অন্য একটি দির থেকে চালু করেছি এবং সমস্যাটি চলে গেল।
ইয়া

আমার ক্ষেত্রে উবুন্টুতে সাব্লাইমে একই ঘটনা ঘটছিল। আমি যখন আইডিই বন্ধ করেছিলাম তখন আমি এটি সঠিকভাবে চালাতে পারতাম। এটি সম্পর্কে কোন টিপস?
Shad

এটি ঠিক করা হয়েছে কিনা তা দেখার জন্য আমি এটিকে প্রতিলিপি দেওয়ার চেষ্টা করি নি।
কোডিনিয়ার

ধন্যবাদ। আমি গিটক্রেন বন্ধ করার পরে খনি কাজ করতে পারে। এটি একটি আজব সমস্যা। সুতরাং এর মানে হল যে আমরা একই ফোল্ডার দুটি পর্যবেক্ষণ করতে পারি না?
ঝাং লংকিউআই

এটি এখানে নেক্সটক্লাউড ক্লায়েন্ট ছিল - এতে এক টন ইনোটিফাই ঘড়ি ব্যবহার করা হয়। ধন্যবাদ, সব!
বিল ম্যাকগনিগল


7

nodemon.jsonআপনার মূল ফোল্ডারে একটি কনফিগারেশন ফাইল যুক্ত করুন এবং উপেক্ষা উপকরণ নির্দিষ্ট করুন:

nodemon.json

{
  "ignore": [
    "*.test.js", 
    "dist/*"
  ]
}
  • উল্লেখ্য, ডিফল্টরূপে .git, node_modules, bower_components, .nyc_output, coverageএবং .sass-cacheউপেক্ষা করা হয় যাতে করে আপনি সেগুলিকে আপনার কনফিগারেশন যোগ করার জন্য প্রয়োজন হবে না।

ব্যাখ্যা: এই ত্রুটিটি ঘটেছে কারণ আপনি আপনার সিস্টেম দ্বারা অনুমোদিত পর্যবেক্ষকদের সর্বাধিক সংখ্যাকে ছাড়িয়ে nodemonগেছেন (অর্থাত্ সমস্ত ফাইল দেখার জন্য আরও ডিস্কের স্থান নেই - যার অর্থ সম্ভবত আপনি গুরুত্বপূর্ণ ফাইলগুলি দেখছেন না)। সুতরাং আপনি অ-গুরুত্বপূর্ণ ফাইলগুলিকে অগ্রাহ্য করেন যা আপনি সেগুলিতে পরিবর্তনের বিষয়ে চিন্তা করেন না যেমন উদাহরণস্বরূপ বিল্ড আউটপুট বা পরীক্ষার ক্ষেত্রে।


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

এটি আমার পক্ষে কাজ করেছে


1
এটি কীভাবে প্রশ্নের উত্তর দেয় তার একটি ব্যাখ্যা যুক্ত করুন।
জেসন অ্যালার

সঠিকভাবে কাজ করেছেন
রোহিত পার্টে

3

আমার ক্ষেত্রে ভিজ্যুয়াল স্টুডিও কোডটি বন্ধ করে সার্ভারটি শুরু করার কৌশলটি কার্যকর হয়েছিল

অপারেটিং সিস্টেম - উবুন্টু 16.4 এলটিএস

নোড.জেএস সংস্করণ - 8.11.1

এনপিএম সংস্করণ - 6.0.0


দেখে মনে হচ্ছে তিনি ভিজ্যুয়াল স্টুডিও ব্যবহার করছিলেন না।
জুলিয়েন রিভল্ট ডি'এ ...

1
যদিও এটি সরাসরি প্রশ্নের উত্তর দেয় না (কারণ প্রশ্নটিতে ভিএস কোড জড়িত না) তবে এটি আমার সমস্যার সমাধান করে।
চেসেন বেটিংগার

2

উপেক্ষা করার জন্য ডিরেক্টরিগুলির তালিকা নির্দিষ্ট করার পরিবর্তে (যেমন নেতিবাচক), আপনি দেখার জন্য ডিরেক্টরিগুলির একটি তালিকাও নির্দিষ্ট করতে পারেন (যেমন ইতিবাচক):

nodemon --watch dir1 --watch dir2  dir1/examples/index.js

আমার বিশেষ ক্ষেত্রে, আমার একটি ডিরেক্টরি ছিল যা আমি দেখতে চেয়েছিলাম এবং প্রায় নয়টি আমি উপেক্ষা করতে চেয়েছিলাম, সুতরাং '--Watch' উল্লেখ করা '--ignore' উল্লেখ করার চেয়ে অনেক সহজ ছিল


0

আমার একই ত্রুটি ছিল, তবে উইন্ডোজ 10 এর ভিতরে উবুন্টু 14.04 এ (উইন্ডোতে উবুন্টুতে ব্যাশ)। আমি ত্রুটিটি কাটিয়ে ওঠার জন্য যা কিছু করেছি তা হ'ল ক্রিয়েটার্স আপডেট আপডেট করা, যা আমাকে উবুন্টু বাশের 16.04 সংস্করণ ইনস্টল করার অনুমতি দেয় এবং তারপরে নোডের সর্বশেষতম সংস্করণ ইনস্টল করার পরে ( এই পদক্ষেপে) আমি এনএমপি এবং তারপরে নোডেমনেরও নতুন সংস্করণ ইনস্টল করেছি allowed সঠিকভাবে কাজ শুরু।


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