ग्रन्ट वॉच एरर - वेटिंग ... घातक त्रुटि: एनओएसपीसी देखें


524

Waiting...Fatal error: watch ENOSPCजब मैं वॉच टास्क चलाता हूं तो मुझे क्यों मिलता है ? मैं इस मुद्दे को कैसे हल करूं?


13
इसे देखने वाले किसी भी व्यक्ति के लिए, यह विशिष्ट नहीं है, gruntलेकिन नीचे दिए गए inotify का उपयोग करने वाला कोई भी प्रोग्राम है। Unix.stackexchange.com/questions/13751/… पर एक अच्छी व्याख्या है ।
जेसी गुड

जवाबों:


1359

कुछ शोध करने के बाद समाधान मिला। नीचे कमांड चलाएं।

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

आर्क लिनक्स के लिए /etc/sysctl.d/99-sysctl.conf पर यह पंक्ति जोड़ें:

fs.inotify.max_user_watches=524288

45
खैर, यह मेरी समस्या हल हो गई है ... लेकिन कैसे? क्यों? क्या आपके पास कोई स्रोत है जो समझाता है कि क्या हो रहा है (या हो रहा था)। या आप खुद कर सकते हैं? वैसे भी, धन्यवाद ...
slacktracer

116
सिस्टम में एक सीमा होती है कि किसी उपयोगकर्ता द्वारा कितनी फ़ाइलों को देखा जा सकता है। यदि आप ग्रन्ट को ड्रॉपबॉक्स जैसे अन्य कार्यक्रमों के साथ चला रहे हैं, तो आप बहुत जल्दी घड़ियों से बाहर भाग सकते हैं। यह कमांड उन घड़ियों की अधिकतम मात्रा को बढ़ाता है जो एक उपयोगकर्ता के पास हो सकती हैं।
बेंजामिन मैन्स

62
आर्क लिनक्स के लिए जोड़ने fs.inotify.max_user_watches=524288के लिए /etc/sysctl.d/99-sysctl.confऔर उसके बाद निष्पादित sysctl --system। यह रीबूट के दौरान भी बना रहेगा। अधिक जानकारी के लिए: wiki.archlinux.org/index.php/Sysctl
tnajdek

38
npm dedupeयह मेरे लिए मंजूरी दे दी। अंक
reergymerej

25
स्पष्टीकरण: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf फ़ाइल के अंत में लिखते हैं /etc/sysctl.conf "लाइन" fs.inotify.max_user_watches = 524288 " sudo sysctl -p रनटाइम के दौरान कर्नेल को पुन: कॉन्फ़िगर करता है, फ़ाइल को
-etc/

186

किसी भी समय आपको sudo something ...कुछ ठीक करने के लिए दौड़ने की ज़रूरत है, आपको यह सोचने के लिए रुकना चाहिए कि क्या चल रहा है। जबकि यहां स्वीकृत उत्तर पूरी तरह से मान्य है, यह समस्या के बजाय लक्षण का इलाज कर रहा है। की समस्या को हल करने के लिए बड़े काठी खरीदने के बराबर सॉर्ट करें: त्रुटि, टट्टू पर अधिक कचरा लोड नहीं कर सकता है। टट्टू में इतना कचरा पहले से ही भरा हुआ है कि टट्टू थकावट के साथ बेहोश हो रहा है।

एक विकल्प (संभवतः टट्टू से अतिरिक्त कचरा उठाने और डंप में रखने के लिए तुलनीय), चलाने के लिए है:

npm dedupe

फिर टट्टू को खुश करने के लिए खुद को बधाई दें।


42
टट्टू को खुश करने के लिए धन्यवाद।
क्रिश्चियन

2
वास्तव में यह क्या करता है? इसने मेरी समस्या को हल कर दिया। धन्यवाद @grenade
अर्जुन केआर

4
'npm dedupe' कमांड आपके npm मॉड्यूल ट्री के माध्यम से चलता है और हर पैकेज को पेड़ में जितना संभव हो उतना ऊपर ले जाता है। परिणाम एक सपाट पेड़ है। यह डुप्लिकेट न होने पर भी एक पैकेज को स्थानांतरित करता है। आप इस मामले में मॉड्यूल के विभिन्न संस्करणों में क्या होता है, इसके बारे में और अधिक पढ़ सकते हैं, डॉक्स.एनपीएमजीएससी
अरुण रेड्डी

1
इससे मदद नहीं मिली, मैंने कोशिश की sudoऔर अब यह मेरे लिए काम कर रहा है।
अष्टमी

6
मेरे मामले में मेरी समस्या ड्रॉपबॉक्स स्थापित करने की है जो बहुत सारी घड़ियों का उपयोग करता प्रतीत होता है। इसलिए मुझे इसका उपयोग करना था: fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -pजैसा कि स्वीकृत उत्तर में है, लेकिन +1 मुझे सिखाने के लिएnpm dedupe
जोहान ईचावरिया

36

ग्रेनेड के जवाब की कोशिश करने के बाद आप एक अस्थायी सुधार का उपयोग कर सकते हैं:

sudo bash -c 'echo 524288 > /proc/sys/fs/inotify/max_user_watches'

यह kds के उत्तर के समान ही काम करता है , लेकिन परिवर्तनों को बनाए रखने के बिना। यह उपयोगी है अगर त्रुटि आपके सिस्टम के कुछ अपटाइम के बाद होती है।


3
यह स्वीकृत उत्तर होना चाहिए क्योंकि समस्या स्वाभाविक रूप से उस समय के कारण होती है जो खराब कॉन्फ़िगरेशन से होती है और "खराब" उदाहरण देखें।
एरियलएमएनजेड

7

यह जानने के लिए कि कौन किसके उदाहरणों को बदल रहा है , इस कमांड ( स्रोत ) को आज़माएँ :

for foo in /proc/*/fd/*; do readlink -f $foo; done | grep inotify | sort | uniq -c | sort -nr

मेरा इस तरह देखा:

 25 /proc/2857/fd/anon_inode:inotify
  9 /proc/2880/fd/anon_inode:inotify
  4 /proc/1375/fd/anon_inode:inotify
  3 /proc/1851/fd/anon_inode:inotify
  2 /proc/2611/fd/anon_inode:inotify
  2 /proc/2414/fd/anon_inode:inotify
  1 /proc/2992/fd/anon_inode:inotify

का उपयोग कर ps -p 2857, मैं के रूप में 2857 प्रक्रिया की पहचान करने में सक्षम था sublime_textसभी उदात्त खिड़कियों को बंद करने के बाद ही मैं अपना नोड स्क्रिप्ट चला पा रहा था।


vscode के लिए मेरे साथ भी यही है, लेकिन मुझे लगता है कि यह फ़ाइल घड़ियों से संबंधित है
pcnate

3

मेरे ग्राहक पीसी के दुर्घटनाग्रस्त होने के बाद मैं इस त्रुटि में भाग गया, jest --watchसर्वर पर चल रही कमांड लगातार बनी रही, और मैंने jest --watchफिर से चलाने की कोशिश की ।

/etc/sysctl.confऊपर दिए गए उत्तरों में वर्णित इसके अलावा इस मुद्दे के आसपास काम किया, लेकिन इसके माध्यम से ps aux | grep nodeऔर मेरी पुरानी प्रक्रिया को खोजने के लिए भी महत्वपूर्ण था kill


0

मेरे मामले में यह मेरे लिनक्स मशीन पर चल रहे बनाम-कोड से संबंधित था। मैंने एक चेतावनी को नजरअंदाज कर दिया, जो कि फाइल वॉचर्स ब्ला ब्ला के बारे में थी। इसका समाधान linux https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-for-file-changes-in- के लिए बनाम-कोड डॉक्स पृष्ठ पर है। इस-बड़े कार्यक्षेत्र-त्रुटि enospc

समाधान लगभग समान है (यदि समान नहीं है) स्वीकृत उत्तरों के रूप में, बस किसी के लिए अधिक स्पष्टीकरण है जो यहां बनाम कोड से मुद्दों में चलने के बाद मिलता है।


0

मेरे मामले में मैंने पाया कि मेरे पास विम के लिए एक आक्रामक प्लगइन है, बस इसे पुनरारंभ करें।

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