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=524288
untuk /etc/sysctl.d/99-sysctl.conf
kemudian mengeksekusi sysctl --system
. Ini juga akan bertahan di seluruh reboot. Untuk detail lebih lanjut: wiki.archlinux.org/index.php/Sysctl
npm dedupe
membersihkannya 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.
sudo
dan sekarang bekerja untuk saya.
fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
seperti 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 --watch
perintah yang saya jalankan di server tetap ada, dan saya mencoba menjalankannya jest --watch
lagi.
Penambahan yang /etc/sysctl.conf
dijelaskan dalam jawaban di atas mengatasi masalah ini, tetapi juga penting untuk menemukan proses lama saya melalui ps aux | grep node
dan kill
itu.
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.
grunt
tetapi program apa pun yang menggunakan tidak sah di bawahnya. Ada penjelasan yang bagus di unix.stackexchange.com/questions/13751/… .