Nodemon: Kesalahan "Kesalahan: tonton ENOSPC"

Dibuat pada 20 Okt 2013  ·  56Komentar  ·  Sumber: remy/nodemon

20 Oct 16:40:37 - [nodemon] v0.7.10
20 Oct 16:40:37 - [nodemon] to restart at any time, enter `rs`
20 Oct 16:40:37 - [nodemon] watching: /my/proyect/server
20 Oct 16:40:37 - [nodemon] exception in nodemon killing node
Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at Object.watchFileChecker.check (/usr/lib/node_modules/nodemon/nodemon.js:160:6)
    at ready (/usr/lib/node_modules/nodemon/nodemon.js:49:22)
    at /usr/lib/node_modules/nodemon/nodemon.js:63:11
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)
20 Oct 16:40:37 - [nodemon] reading ignore list
20 Oct 16:40:37 - [nodemon] exception in nodemon killing node
Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at fs.watch (fs.js:1076:11)
    at checkTimer (/usr/lib/node_modules/nodemon/nodemon.js:467:27)
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)

Komentar yang paling membantu

Sistem memiliki batasan berapa banyak file yang dapat ditonton oleh pengguna. Anda dapat kehabisan jam tangan dengan cepat jika Anda menjalankan Grunt dengan program lain seperti Dropbox.

Posting menyarankan menjalankan ini untuk meningkatkan jumlah jam tangan yang tersedia.

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Semua 56 komentar

Versi Node?

Juga, dapatkah Anda memberikan skrip kasus uji sederhana yang Anda gunakan (untuk menguji).

gunakan Node 0.10.21. Dengan skrip apa pun, menghasilkan kesalahan.

Apakah ini masalah yang sama dengan #144? Saya tidak dapat mereplikasi ini di mac saya (meskipun saya tidak menanyakan OS apa yang Anda miliki, tetapi mengasumsikan tipe * nix berdasarkan jalur di tempel Anda di atas).

Tidak sama, yang berbeda disini adalah menjalankan satu proses. Di lain berjalan pada beberapa proses, non-cloud

Mengalami kesalahan ini hari ini dengan banyak aplikasi (ekspres, restify).

NodeJS: v0.10.21
Versi ElementaryOS: 0.2 "Luna" ( 64-bit )
Dibangun di atas: Ubuntu 12.04 ("Tepat")
Kernel 3.5.0-43-generik

11 Nov 17:32:38 - [nodemon] v0.7.10
11 Nov 17:32:38 - [nodemon] to restart at any time, enter `rs`
...
11 Nov 17:32:38 - [nodemon] exception in nodemon killing node
Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at Object.watchFileChecker.check (/home/.../node_modules/nodemon/nodemon.js:160:6)
    at ready (/home/.../node_modules/nodemon/nodemon.js:49:22)
    at /home/.../node_modules/nodemon/nodemon.js:63:11
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)

memperbanyak:

npm install nodemon
./node_modules/.bin/nodemon app.js

app.js (dari http://nodejs.org/)

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

Saya mendapatkan kesalahan yang sama dengan CoffeeScript --watch ./node_modules/.bin/coffee --watch app/

/home/.../node_modules/coffee-script/lib/coffee-script/command.js:334
        throw e;
              ^
Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at watchDir (/home/.../node_modules/coffee-script/lib/coffee-script/command.js:299:27)
    at /home/.../node_modules/coffee-script/lib/coffee-script/command.js:102:11
    at Object.oncomplete (fs.js:107:15)

Saya mendapatkan kesalahan yang sama dengan proyek compound.js menggunakan coffeescript di Ubuntu 13.10 dengan node 0.10.21

$ nodemon server.coffee

27 Nov 21:40:14 - [nodemon] v0.7.10
27 Nov 21:40:14 - [nodemon] to restart at any time, enter `rs`
27 Nov 21:40:14 - [nodemon] watching: /home/chok/work/edf/bluetic/src
27 Nov 21:40:14 - [nodemon] exception in nodemon killing node
Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at Object.watchFileChecker.check (/usr/local/lib/node_modules/nodemon/nodemon.js:160:6)
    at ready (/usr/local/lib/node_modules/nodemon/nodemon.js:49:22)
    at /usr/local/lib/node_modules/nodemon/nodemon.js:63:11
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)

Adakah yang bisa mencoba ini dengan versi dev dari nodemon? Saya telah membuat banyak perubahan dan mencoba memusatkan upaya saya untuk memastikan versi baru menyelesaikan semua masalah ini.

Anda dapat menginstal menggunakan npm install -g nodemon@dev

Bekerja untuk saya sekarang tidak tahu mengapa. Menggunakan versi stabil nodemon npm terbaru. Juga memiliki masalah yang sama dengan coffeescript --watch dan ini juga berfungsi sekarang. Tidak ada pembaruan simpul, cukup instal modul npm dan pembaruan distro.

Saya memiliki kesalahan yang sama tetapi prosesnya berhenti:

$ nodemon server.coffee 
3 Dec 15:32:42 - [nodemon] v0.9.10
[nodemon] exception in nodemon killing node
[nodemon] Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at Function.check (/usr/local/lib/node_modules/nodemon/lib/config/watchable.js:34:6)
    at alternativeCheck (/usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:18:15)
    at /usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:36:11
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)

@chok dapatkah Anda menjalankan yang berikut (dan menempelkan hasilnya) untuk saya di direktori yang sama dengan yang Anda jalankan nodemon:

find . | wc

Saya mencoba untuk mendapatkan ide apa yang sebenarnya menyebabkan masalah ini.

Berikut adalah hasilnya:

$ find . | wc
   7677    7677  542965

Oke, itu 7600 file yang mencoba mengikat jam tangan juga.

Bisakah Anda menjalankan tree dan meletakkan hasilnya di http://pastie.org/ (hanya karena itu akan menjadi besar).

Pastie bilang itu terlalu besar (lebih dari 64kb) dan lagi pula saya tidak suka teks di bawah :p (Semua pasta Anda adalah milik kami. ). Saya menghapus beberapa bagian khusus untuk proyek saya. Omong-omong, sebagian besar file, tentu saja, terletak di node_modules.

Anda dapat menemukannya di Gist: https://Gist.github.com/chok/7774318

Oke, saya _pikir_ ini adalah masalah yang sepenuhnya terkait dengan jumlah file yang dipantau (karena Anda harus mengikat setiap file individual). Saya berpikir untuk mengabaikan direktori node_modules dan .git secara default, tetapi dapatkah Anda mencoba melakukannya dengan perintah abaikan (dengan asumsi Anda masih menjalankan 0.9.x):

nodemon -i node_modules

Tentu saja ini tidak perlu dilakukan setiap saat, saya hanya mencoba memastikan ini masalahnya.

Itu tidak berhasil :(

$ nodemon -i node_modules/ server.coffee 
3 Dec 20:52:32 - [nodemon] v0.9.10
[nodemon] exception in nodemon killing node
[nodemon] Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at Function.check (/usr/local/lib/node_modules/nodemon/lib/config/watchable.js:34:6)
    at alternativeCheck (/usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:18:15)
    at /usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:36:11
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)

Saya juga mencoba:

$ nodemon -w app/* server.coffee 
3 Dec 20:53:32 - [nodemon] v0.9.10
[nodemon] exception in nodemon killing node
[nodemon] Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at Function.check (/usr/local/lib/node_modules/nodemon/lib/config/watchable.js:34:6)
    at alternativeCheck (/usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:18:15)
    at /usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:36:11
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)

Bisakah Anda menjalankan perintah yang sama persis, tetapi tambahkan --dump dan kirimkan saya tanggapannya (ketika Anda melakukan versi abaikan).

Tidak ada perubahan:

$ nodemon -i node_modules/ server.coffee  --dump
3 Dec 21:17:18 - [nodemon] v0.9.10
[nodemon] exception in nodemon killing node
[nodemon] Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at Function.check (/usr/local/lib/node_modules/nodemon/lib/config/watchable.js:34:6)
    at alternativeCheck (/usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:18:15)
    at /usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:36:11
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)

Hmm, maaf, bisakah Anda menempelkan --dump sebelum skrip Anda, itu akan memberi saya dump dari konfigurasi.

aku udah coba dua-duanya :(

$ nodemon -i node_modules/ --dump server.coffee 
3 Dec 21:25:35 - [nodemon] v0.9.10
[nodemon] exception in nodemon killing node
[nodemon] Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at Function.check (/usr/local/lib/node_modules/nodemon/lib/config/watchable.js:34:6)
    at alternativeCheck (/usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:18:15)
    at /usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:36:11
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)

Hai. Saya tidak ingin terdengar tumpul, tetapi ketika saya menemukan kesalahan ini, saya memperbaikinya dengan meningkatkan max_user_watches di sistem saya. Saya telah menonton utas ini untuk melihat apakah ada hal lain yang terjadi.

@taylorjbrennan ya, saya tahu itu akan memperbaiki masalah, tetapi sementara @chok dapat mereplikasi secara konsisten, saya mencari perubahan yang akan memperbaiki nodemon tanpa pengguna perlu melakukan sihir max_user_watches io.

@remy hebat, saya berharap dapat melihatnya.

@chok dapatkah Anda mencoba ini lagi dengan [email protected] - nodemon sekarang mengabaikan .git dan node_modules/**/node_modules secara default, jadi jumlah jam tangan harus jauh lebih rendah (saya akan membuka kembali jika ini masih menjadi masalah) .

Saya juga akan mencoba mendeteksi kesalahan watch ENOSPC dan mengulangi pesan tentang peningkatan max_user_watches . Tidak ideal, tetapi tidak ada lagi yang benar-benar dapat saya lakukan.

Saya tidak menerima pesan ini lagi :) tetapi sekarang saya memiliki masalah yang dijelaskan di #245

Saya baru saja mengalami masalah ini dan itu adalah masalah terlalu banyak file yang terbuka di sistem. (Teks Sublime suka membuka banyak file jika Anda membiarkannya)

Segera setelah saya membuka direktori dengan banyak file di Sublime 2 nodemon tidak berfungsi lagi dan mengeluarkan kesalahan yang dirujuk. Saya hanya bisa mengatasinya dengan tidak menggunakan fitur "buka folder" Sublimes. Terima kasih atas petunjuknya @eyce9000.

@timtips sama dengan sublimetext3 dan nodemon v1.3.1

@baio dapatkah Anda memeriksanya kembali. Tidak ada [email protected] - ada pra-rilis @1.3.0-1 - tetapi itu tidak sedang diproduksi di npm (dapatkah Anda juga mengonfirmasi versi npm Anda)?

Dia bisa menutup bug ini? Sebagai versi baru dari nodemon dan nodejs, telah memecahkan masalah ini, meskipun saya tidak bisa mengatakan ini sepenuhnya diselesaikan. Dapat dikatakan tidak lagi sering terjadi.

@alejonext dapatkah Anda mencoba dengan npm install -g nodemon@dev - Saya telah membuat beberapa perubahan yang tidak ada di 1.2.1.

Kesalahan sebenarnya berarti "Kesalahan NO disk SPaCe" - tetapi saya pikir itu terkait dengan jumlah file yang dipantau, yang harus dikurangi melalui perubahan pada kode tontonan ...

@remy Bekerja sempurna :) terima kasih atas pekerjaan Anda!!!!

Manis. Akan ada rilis stabil 1.3.0 hingga npm kemungkinan minggu ini dengan banyak perbaikan bug juga.

@remy heran dengan waktu respons. Terima kasih!

@remy
pengecualian dalam nodemon membunuh node
Kesalahan: tonton ENOSPC
di errnoException (fs.js:1030:11)
di FSWatcher.start (fs.js:1062:11)
di Object.fs.watch (fs.js:1087:11)

simpul v0.10.33
OS: Linux ubuntu

Saya telah memperbaikinya dengan perintah ini https://github.com/ember-cli/ember-cli/issues/1240#issuecomment -47855317

tetapi apakah memperbarui paket dengan cara yang disarankan?

Saya bertanya-tanya mengapa itu menjadi seperti ini di tempat pertama. Saya menggunakan manajer versi simpul dengan
simpul 0.12.0
npm 2.7.0
bara 0.2.0

Sistem memiliki batasan berapa banyak file yang dapat ditonton oleh pengguna. Anda dapat kehabisan jam tangan dengan cepat jika Anda menjalankan Grunt dengan program lain seperti Dropbox.

Posting menyarankan menjalankan ini untuk meningkatkan jumlah jam tangan yang tersedia.

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Saya mengalami masalah ini dengan "nodemon": "^1.4.1" dan "node": "0.12.7" :kecewa:

Silakan coba dengan #625

Pada Sel, 8 Sep 2015 16:20 Wesley Queiroz [email protected] menulis:

Saya mengalami masalah ini dengan "nodemon": "^1.4.1" dan "node": "0.12.7" [gambar:
:kecewa:]


Balas email ini secara langsung atau lihat di GitHub
https://github.com/remy/nodemon/issues/214#issuecomment -138598438.

Mencoba dengan alpha tetapi masih mendapatkan ENOSPC ...
sysctl.conf memiliki fs.inotify.max_user_watches=10000 .
Jika saya mengubahnya menjadi 524288 itu berfungsi, tetapi di "dev-server" saya, saya tidak akan dapat mengubahnya.

Berapa banyak file yang Anda coba tonton? yaitu berapa banyak yang berada di bawah Anda
direktori kerja?

Pada Tue, 8 Sep 2015 at 17:37 Wesley Queiroz [email protected] menulis:

Mencoba dengan alpha tetapi masih mendapatkan ENOSPC...
Sysctl.conf saya memiliki fs.inotify.max_user_watches=10000.
Jika saya mengubahnya menjadi 524288 itu berfungsi, tetapi di "server-dev" saya, saya tidak akan bisa
untuk mengubahnya.


Balas email ini secara langsung atau lihat di GitHub
https://github.com/remy/nodemon/issues/214#issuecomment -138624285.

Tidak banyak, maksimal 30.
Tapi saya pikir nodemon sedang mencoba untuk menonton node_modules di root proyek.
Di bawah ini adalah konfigurasi yang diteruskan ke nodemon (saya menggunakannya sebagai modul node):

nodemon({
    script: 'server/server.js',
    watch: [
        'server/',
        'common/'
    ],
    ext: 'js json coffee'
});

folder server memiliki:
7 file kopi
5 file json
dan folder umum hanya memiliki 1 file json ...

Ya...jadi jalankan find . | wc -l dan apa yang diberikan angka itu kepada Anda? Padahal, seharusnya mengabaikan node_modules secara default, mungkin saja itu tidak dipertimbangkan.

Menjalankan find . | wc -l pada root proyek memberi saya 18266 tetapi ketika saya menghapus node_modules dan bower_components hanya memberikan 320 .

Oke, jadi saya pikir jam tangan _is_ termasuk node_modules - ini adalah bagian dari refactor #625 dan perlu diperbaiki.

@wesleycoder dapatkah Anda mencoba dengan nodemon@dev (seharusnya versi 1.5.0-alpha4 ) dan jalankan dengan DEBUG=nodemon <your normal nodemon command> lalu rekatkan output lengkapnya.

Wah!
Berhasil!
Tidak ada kesalahan!
Terima kasih!

Ini mungkin karena jangkauan sistem Anda dari pengguna dapat menonton file. anda dapat menggunakan baris perintah berikut di ubuntu
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
atau coba
npm dedupe

Lihat stackoverflow ini

@ankibalyan @uttampanara

berhasil !
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

bekerja untuk saya juga!
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Sama disini ! :+1:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Jalankan perintah ini

echo fs.inotify.max_user_watches=582222 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Solusi lain yang mungkin adalah menambahkan file konfigurasi nodemon.json di folder root Anda dan menentukan pola abaikan misalnya:
nodemon.json

{
  "ignore": [
    "*.test.js", 
    "dist/*"
  ]
}
  • Perhatikan bahwa secara default .git , node_modules , bower_components , .nyc_output , coverage dan .sass-cache diabaikan sehingga Anda tidak tidak perlu menambahkannya ke konfigurasi Anda.

Trik pemberitahuan fs tampaknya tidak berfungsi pada wadah buruh pelabuhan ... setidaknya tidak Alpine 3.8, saya mendapatkan kesalahan ENOSPC yang sama. Ini menjadi lebih penting karena alat sudah tidak digunakan lagi dan kami masih perlu mempertahankan produk lama

Apakah halaman ini membantu?
0 / 5 - 0 peringkat