Antworten:
Nach einigen Recherchen fand die Lösung. Führen Sie den folgenden Befehl aus.
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Fügen Sie für Arch Linux diese Zeile zu /etc/sysctl.d/99-sysctl.conf hinzu:
fs.inotify.max_user_watches=524288
fs.inotify.max_user_watches=524288
zu /etc/sysctl.d/99-sysctl.conf
und führen sysctl --system
. Dies bleibt auch bei Neustarts bestehen. Für weitere Informationen: wiki.archlinux.org/index.php/Sysctl
npm dedupe
hat es für mich geklärt. Ausgabe
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
Schreibt am Ende der Datei /etc/sysctl.conf die Zeile "fs.inotify.max_user_watches = 524288" sudo sysctl -p
konfiguriert den Kernel zur Laufzeit neu und lädt die Datei /etc/sysctl.conf als Parameter
Jedes Mal, wenn Sie laufen müssen sudo something ...
, um etwas zu reparieren, sollten Sie eine Pause einlegen, um darüber nachzudenken, was los ist. Während die hier akzeptierte Antwort vollkommen gültig ist, behandelt sie eher das Symptom als das Problem. Sorta das Äquivalent zum Kauf größerer Satteltaschen, um das Problem zu lösen: Fehler, kann nicht mehr Müll auf Pony laden. Pony hat schon so viel Müll geladen, dass das Pony vor Erschöpfung in Ohnmacht fällt.
Eine Alternative (vielleicht vergleichbar mit dem Entfernen von überschüssigem Müll vom Pony und dem Ablegen auf der Müllkippe) ist das Ausführen von:
npm dedupe
Dann gratuliere dir, dass du das Pony glücklich gemacht hast.
sudo
und jetzt funktioniert es für mich.
fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
wie in der akzeptierten Antwort, aber +1 für mich lehrennpm dedupe
Nachdem Sie die Antwort der Granate ausprobiert haben , können Sie eine vorübergehende Korrektur verwenden:
sudo bash -c 'echo 524288 > /proc/sys/fs/inotify/max_user_watches'
Dies entspricht der Antwort von kds , ohne jedoch die Änderungen beizubehalten . Dies ist nützlich, wenn der Fehler erst nach einer gewissen Betriebszeit Ihres Systems auftritt.
Versuchen Sie diesen Befehl ( Quelle ) , um herauszufinden, wer inotify- Instanzen erstellt :
for foo in /proc/*/fd/*; do readlink -f $foo; done | grep inotify | sort | uniq -c | sort -nr
Meins sah so aus:
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
Mit ps -p 2857
konnte ich Prozess 2857 als identifizieren sublime_text
. Erst nachdem ich alle erhabenen Fenster geschlossen hatte, konnte ich mein Knotenskript ausführen.
Dieser Fehler trat auf, nachdem mein Client-PC abgestürzt war, der jest --watch
Befehl , den ich auf dem Server ausführte, weiterhin bestand und ich versuchte, ihn jest --watch
erneut auszuführen .
Die /etc/sysctl.conf
in den obigen Antworten beschriebene Ergänzung hat dieses Problem umgangen, aber es war auch wichtig, meinen alten Prozess über ps aux | grep node
und kill
darüber zu finden.
In meinem Fall war es mit vs-Code verbunden, der auf meinem Linux-Computer ausgeführt wurde. Ich ignorierte eine Warnung, die über File Watcher Bla Bla auftauchte. Die Lösung befindet sich auf der vs-code docs-Seite für Linux https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in- this-large-workspace-error-enospc
Die Lösung ist fast die gleiche (wenn nicht die gleiche) wie die akzeptierten Antworten, hat nur mehr Erklärungen für jeden, der hierher kommt, nachdem er auf die Probleme von vs-code gestoßen ist.
In meinem Fall habe ich festgestellt, dass ich ein aggressives Plugin für Vim habe, habe es einfach neu gestartet.
grunt
ein Programm, das darunter inotify verwendet . Eine gute Erklärung finden Sie unter unix.stackexchange.com/questions/13751/… .