Ich lerne graphql
und verwende prisma-binding
für Graphql-Operationen. Beim nodemon
Starten meines Knotenservers tritt dieser Fehler auf, und er gibt mir den Pfad der Schemadatei an, die automatisch von a generiert wird graphql-cli
. Kann mir jemand sagen, worum es bei diesem Fehler geht?
Error:
Internal watch failed: ENOSPC: System limit for number of file watchers reached, watch '/media/rehan-sattar/Development/All projects/GrpahQl/graph-ql-course/graphql-prisma/src/generated
node_modules
sind wichtig, weil alle Pakete da sind. Ich habe versucht, die vorherigen Prozesse zu beenden, die auf dem Port meines Servers ausgeführt wurden. Es hat bei mir funktioniert, aber ich weiß nicht, wie lange es jetzt dauern wird: DAntworten:
Wenn Sie Linux verwenden, erreicht Ihr Projekt das Limit für die Dateiüberwachung Ihres Systems
Um dies zu beheben, versuchen Sie auf Ihrem Terminal:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
quelle
sysctl --system
diesefind /proc/*/fd -user "$USER" -lname anon_inode:inotify -printf '%hinfo/%f\n' 2>/dev/null | xargs cat | grep -c '^inotify'
Ich bekomme manchmal dieses Problem, wenn ich mit VSCode auf meinem Ubuntu-Computer arbeite.
In meinem Fall hilft die folgende Problemumgehung:
Stoppen Sie den Watcher, schließen Sie VScode, starten Sie den Watcher und öffnen Sie VSCode erneut.
quelle
Sie müssen das Inotify- Watcher-Limit für Benutzer Ihres Systems erhöhen. Sie können dies über die Befehlszeile tun mit:
sudo sysctl -w fs.inotify.max_user_watches=100000
Dies bleibt jedoch nur bis zum Neustart bestehen. Fügen Sie eine Datei
/etc/sysctl.d/10-user-watches.conf
mit dem folgenden Inhalt hinzu, um dies dauerhaft zu machen :fs.inotify.max_user_watches = 100000
Nachdem Sie die oben genannten (oder andere) Änderungen vorgenommen haben, können Sie die Einstellungen aus allen sysctl-Konfigurationsdateien
/etc
mit neu ladensudo sysctl -p
.quelle
/etc/sysctl.d/10-user-watches.conf
und lege sie hineinfs.inotify.max_user_watches = 100000
.echo fs.inotify.max_user_watches=100000 | sudo tee /etc/sysctl.d/10-user-watches.conf && sudo sysctl -p
.sysctl --system
dieseUm die Änderungen zu testen, habe ich den Parameter temporär auf den Wert 524288 gesetzt.
sysctl -w fs.inotify.max_user_watches=524288
dann gehe ich zur Validierung über:
Und das Problem wurde behoben. Um es dauerhaft zu machen, sollten Sie versuchen, eine Zeile in die Datei "/etc/sysctl.conf" einzufügen und dann den sysctl-Dienst neu zu starten:
cat /etc/sysctl.conf |tail -n 2 fs.inotify.max_user_watches=524288 sudo systemctl restart systemd-sysctl.service
quelle
Es kann schwierig sein zu wissen, um wie viel die Anzahl der Beobachter erhöht werden kann. Hier ist ein Dienstprogramm, mit dem Sie die Anzahl der Beobachter verdoppeln können:
function get_inode_watcher_count() { find /proc/*/fd -user "$USER" -lname anon_inode:inotify -printf '%hinfo/%f\n' 2>/dev/null | xargs cat | grep -c '^inotify' } function set_inode_watchers() { sudo sysctl -w fs.inotify.max_user_watches="$1" } function double_inode_watchers() { watcher_count="$(get_inode_watcher_count)" set_inode_watchers "$((watcher_count * 2))" if test "$1" = "-p" || test "$1" = "--persist"; then echo "fs.inotify.max_user_watches = $((watcher_count * 2))" > /etc/sysctl.d/10-user-watches.conf fi } # Usage double_inode_watchers # to make the change persistent double_inode_watchers --persist
quelle
Unter Linux habe ich tatsächlich mit sudo gearbeitet.
sudo npm start
quelle