Bagi siapa pun yang melihat ini, ini tidak khusus untuk grunttetapi program apa pun yang menggunakan tidak sah di bawahnya. Ada penjelasan yang bagus di unix.stackexchange.com/questions/13751/… .
Jesse Good
Jawaban:
1359
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:
Ya, sepertinya masalah saya sudah terpecahkan ... Tapi bagaimana caranya? Mengapa? Apakah Anda memiliki sumber yang menjelaskan apa yang sedang terjadi (atau sedang terjadi). Atau mungkin Anda sendiri yang melakukannya? Bagaimanapun, terima kasih ...
slacktracer
116
Sistem memiliki batasan berapa banyak file yang dapat ditonton oleh pengguna. Anda dapat kehabisan jam tangan dengan cukup cepat jika Grunt dijalankan dengan program lain seperti Dropbox. Perintah ini meningkatkan jumlah maksimum jam tangan yang dapat dimiliki pengguna.
Benjamin Manns
62
Untuk Arch Linux menambahkan 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
penjelasan: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
kds
186
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.
Apa tepatnya itu? Itu memecahkan masalah saya pasti. Terima kasih @grenade
Arjun KR
4
Perintah 'npm dedupe' berjalan melalui modul tree npm Anda dan memindahkan setiap paket di pohon sebanyak mungkin. Hasilnya adalah pohon yang rata. Itu bergerak paket bahkan ketika itu tidak digandakan. Anda dapat membaca lebih lanjut tentang apa yang terjadi pada berbagai versi modul dalam kasus ini, di docs.npmjs.com/cli/dedupe
Arun Reddy
1
itu tidak membantu, saya mencoba sudodan sekarang bekerja untuk saya.
asedsami
6
Dalam kasus saya, sepertinya masalah saya adalah menginstal Dropbox yang tampaknya menggunakan banyak jam tangan. Jadi saya harus menggunakan: 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
Johann Echavarria
36
Setelah mencoba jawaban granat, Anda dapat menggunakan perbaikan sementara:
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.
Ini harus menjadi jawaban yang diterima karena masalah secara alami disebabkan oleh apa yang sedang berjalan saat ini dan bukan oleh konfigurasi yang buruk (lihat contoh "kuda").
arielnmz
7
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
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.
sama dengan saya untuk vscode tetapi saya pikir ini terkait dengan jam tangan file juga
pcnate
3
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.
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.
grunt
tetapi program apa pun yang menggunakan tidak sah di bawahnya. Ada penjelasan yang bagus di unix.stackexchange.com/questions/13751/… .Jawaban:
Setelah melakukan beberapa penelitian ditemukan solusinya. Jalankan perintah di bawah ini.
Untuk Arch Linux, tambahkan baris ini ke /etc/sysctl.d/99-sysctl.conf:
sumber
fs.inotify.max_user_watches=524288
untuk/etc/sysctl.d/99-sysctl.conf
kemudian mengeksekusisysctl --system
. Ini juga akan bertahan di seluruh reboot. Untuk detail lebih lanjut: wiki.archlinux.org/index.php/Sysctlnpm dedupe
membersihkannya untukku. masalahecho 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 parameterSetiap 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:
Kemudian ucapkan selamat kepada diri sendiri karena membuat kuda poni bahagia.
sumber
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:
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.
sumber
Untuk mencari tahu siapa yang membuat instance tidak masuk akal , coba perintah ini ( sumber ):
Milik saya terlihat seperti ini:
Dengan menggunakan
ps -p 2857
, saya dapat mengidentifikasi proses 2857 sebagaisublime_text
. Hanya setelah menutup semua jendela sublim, saya dapat menjalankan skrip simpul saya.sumber
Saya mengalami kesalahan ini setelah PC klien saya mogok,
jest --watch
perintah yang saya jalankan di server tetap ada, dan saya mencoba menjalankannyajest --watch
lagi.Penambahan yang
/etc/sysctl.conf
dijelaskan dalam jawaban di atas mengatasi masalah ini, tetapi juga penting untuk menemukan proses lama saya melaluips aux | grep node
dankill
itu.sumber
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.
sumber
Dalam kasus saya, saya menemukan bahwa saya memiliki plugin yang agresif untuk Vim, baru saja me-restart itu.
sumber