Jawaban:
Setelah melakukan beberapa penelitian ditemukan solusinya. Jalankan perintah di bawah ini.
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Untuk Arch Linux, tambahkan baris ini ke /etc/sysctl.d/99-sysctl.conf:
fs.inotify.max_user_watches=524288
fs.inotify.max_user_watches=524288untuk /etc/sysctl.d/99-sysctl.confkemudian mengeksekusi sysctl --system. Ini juga akan bertahan di seluruh reboot. Untuk detail lebih lanjut: wiki.archlinux.org/index.php/Sysctl
npm dedupemembersihkannya untukku. masalah
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf menulis di akhir file /etc/sysctl.conf baris "fs.inotify.max_user_watches = 524288" sudo sysctl -p mengkonfigurasi ulang kernel saat runtime, memuat file /etc/sysctl.conf sebagai parameter
Setiap kali Anda perlu berlari sudo something ...untuk memperbaiki sesuatu, Anda harus berhenti sejenak untuk memikirkan apa yang sedang terjadi. Meskipun jawaban yang diterima di sini benar-benar valid, jawabannya adalah mengobati gejala daripada masalahnya. Mengurutkan setara dengan membeli kantong pelana yang lebih besar untuk menyelesaikan masalah: kesalahan, tidak dapat memuat lebih banyak sampah ke kuda poni. Pony sudah memiliki begitu banyak sampah, sehingga pony pingsan karena kelelahan.
Alternatif (mungkin sebanding dengan membuang kelebihan sampah kuda dan menempatkannya di tempat sampah), adalah menjalankan:
npm dedupe
Kemudian ucapkan selamat kepada diri sendiri karena membuat kuda poni bahagia.
sudodan sekarang bekerja untuk saya.
fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -pseperti pada jawaban yang diterima, tetapi +1 untuk mengajari sayanpm dedupe
Setelah mencoba jawaban granat, Anda dapat menggunakan perbaikan sementara:
sudo bash -c 'echo 524288 > /proc/sys/fs/inotify/max_user_watches'
Ini melakukan hal yang sama dengan jawaban kds , tetapi tanpa menahan perubahan. Ini berguna jika kesalahan hanya terjadi setelah beberapa waktu uptime dari sistem Anda.
Untuk mencari tahu siapa yang membuat instance tidak masuk akal , coba perintah ini ( sumber ):
for foo in /proc/*/fd/*; do readlink -f $foo; done | grep inotify | sort | uniq -c | sort -nr
Milik saya terlihat seperti ini:
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
Dengan menggunakan ps -p 2857, saya dapat mengidentifikasi proses 2857 sebagai sublime_text. Hanya setelah menutup semua jendela sublim, saya dapat menjalankan skrip simpul saya.
Saya mengalami kesalahan ini setelah PC klien saya mogok, jest --watchperintah yang saya jalankan di server tetap ada, dan saya mencoba menjalankannya jest --watchlagi.
Penambahan yang /etc/sysctl.confdijelaskan dalam jawaban di atas mengatasi masalah ini, tetapi juga penting untuk menemukan proses lama saya melalui ps aux | grep nodedan killitu.
Dalam kasus saya ini terkait dengan vs-code yang berjalan di mesin Linux saya. Saya mengabaikan peringatan yang muncul tentang pengamat file bla bla. Solusinya ada pada halaman vs-code docs untuk linux https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in- ini-large-workspace-error-enospc
Solusinya hampir sama (jika tidak sama) dengan jawaban yang diterima, hanya memiliki lebih banyak penjelasan bagi siapa saja yang datang ke sini setelah mengalami masalah dari vs-code.
Dalam kasus saya, saya menemukan bahwa saya memiliki plugin yang agresif untuk Vim, baru saja me-restart itu.
grunttetapi program apa pun yang menggunakan tidak sah di bawahnya. Ada penjelasan yang bagus di unix.stackexchange.com/questions/13751/… .