Node.JS: त्रुटि प्राप्त करना: [संज्ञा] आंतरिक घड़ी विफल: 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
@ हेनरिक, यह सिर्फ एक अनुमान है, मुझे लगता है कि नोडज पुस्तकालय को फाइल के माध्यम से फाइल सिस्टम परिवर्तनों को देखता है। मुझे लगता है कि घड़ियों की अधिकतम संख्या के लिए प्रति उपयोगकर्ता एक सीमा है, जो यह सेटिंग अधिक मूल्य में बदलती है।
at देवम्बरीस

2
@devrimbaris सही!
एरिक ऑस्लैंड

3
यह केवल मेरे लिए Ubuntu 14.04 से Ubuntu 16.04 तक जाने के बाद हुआ है। आपके समाधान ने मेरे लिए भी काम किया। धन्यवाद
मेस्त्रे सैन

2
उस पर रखो /etc/sysctl.d/90-override.confअगर आप आर्क पर हैं
ओवरकोडर 11

28

एरिक, आप बस द्वारा अन्य सभी नोड प्रक्रियाओं को मार सकते हैं

pkill -f नोड

और फिर अपने सर्वर को पुनः आरंभ करें। यह तब ठीक काम करेगा।


7
डाउनवोट क्योंकि इससे मेरे विजुअल स्टूडियो कोड विंडो भी जमने लगीं।
लेक्सह

यह एक आकर्षण की तरह काम कर रहा था ... अब तक! अब इसकी अप्रभावी, एक ही त्रुटि हो रही है।
kestrel

28

नोड सर्वर चलाने पर त्रुटियों और समाधानों का पालन होता है:

nodemon server.js

[संज्ञा] १.१ ..२

[nodemon] किसी भी समय पुनः आरंभ करने के लिए, दर्ज करें rs

[संज्ञा] देखना :।

[संज्ञा] शुरू करना node server.js

[संज्ञा] आंतरिक घड़ी विफल रही: घड़ी / घर / aurum304 / जिन ENOSPC

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सेटिंग है, जिसका उपयोग नोडमॉन को यह बताने के लिए किया जा सकता है कि क्या नहीं देखना है। यहाँ nodemon नमूना विन्यास पर एक नज़र है


अच्छा काम, यही मूल कारण है।
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
यही वास्तव में मेरी समस्या थी। मुझे खुशी है कि प्रोजेक्ट की इंस्टॉलेशन डायरेक्टरी से परमाणु लॉन्च किया जाए। मैंने परमाणु को बंद कर दिया, इसे एक अलग डायर से लॉन्च किया और समस्या दूर हो गई।
हां।

मेरे मामले में, उबंटू में सबलाइम पर भी ऐसा ही हो रहा था। जब मैंने आईडीई को बंद किया, तो मैं इसे ठीक से चला सकता था। इसके बारे में कोई सुझाव?
शाद

मैंने यह देखने के लिए इसे दोहराने की कोशिश नहीं की है कि क्या इसे ठीक किया गया है।
कोडिनेयर

धन्यवाद। मैं Gitkraken को बंद करने के बाद काम कर सकता हूं। यह एक अजीब समस्या है। तो इसका मतलब है कि हम एक ही फ़ोल्डर की निगरानी करने वाली दो प्रक्रियाएं नहीं कर सकते हैं?
झांग लॉन्गक्यूआई

यह यहाँ नेक्लाउड क्लाइंट था - जो कि एक टन इनॉटिफ़ घड़ियों का उपयोग करता है। धन्यवाद, y'all!
बिल मैकगोनिगल

8

इसे इस्तेमाल करे....

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

बेवजह काम करेंगे


1
मुझे इस अवहेलना की विद्रोही प्रकृति पसंद है
SimplyKnownAsG

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

मेरे मामले में विजुअल स्टूडियो कोड को बंद करने के बाद सर्वर को शुरू करने की कोशिश की गई

ऑपरेटिंग सिस्टम - ubuntu 16.4 lts

नोड.जेएस संस्करण - 8.11.1

एनपीएम संस्करण - 6.0.0


ऐसा लगता है कि वह दृश्य स्टूडियो का उपयोग नहीं कर रहा था।
जूलियन रेवॉल्ट डी ... 15

1
हालाँकि यह सीधे सवाल का जवाब नहीं देता (क्योंकि प्रश्न में वीएस कोड शामिल नहीं है), इससे मेरी समस्या हल हो गई।
चेस बेटिंगर

2

अनदेखा करने के लिए निर्देशिकाओं की सूची निर्दिष्ट करने के बजाय (उदा। नकारात्मक), आप देखने के लिए निर्देशिकाओं की सूची भी निर्दिष्ट कर सकते हैं (उदाहरण के लिए सकारात्मक):

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

मेरे विशेष मामले में, मेरे पास एक निर्देशिका थी जिसे मैं देखना चाहता था और लगभग नौ को मैं अनदेखा करना चाहता था, इसलिए '- घड़ी' को निर्दिष्ट करना '--ignore' को निर्दिष्ट करने से बहुत सरल था।


0

मेरे पास भी यही त्रुटि थी, लेकिन विंडोज 10 के अंदर उबंटू में 14.04 (उबुन्टु पर बैश ऑन विंडोज)। सभी मैंने त्रुटि को दूर करने के लिए किया था क्रिएटर्स अपडेट को अपडेट करने के लिए, जिसने तब मुझे उबंटू बैश के 16.04 संस्करण को स्थापित करने की अनुमति दी और फिर नोड के नवीनतम संस्करण ( इस चरणों द्वारा ) को स्थापित करने के बाद मैंने एनपीएम के नवीनतम संस्करण को स्थापित किया और फिर नोड्स ठीक से काम करना शुरू कर दिया।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.