Nodemon: Ошибка «Ошибка: смотреть ENOSPC».

Созданный на 20 окт. 2013  ·  56Комментарии  ·  Источник: 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)

Самый полезный комментарий

В системе есть ограничение на количество файлов, которые может просматривать пользователь. Вы можете довольно быстро закончить часы, если у вас есть Grunt, работающий с другими программами, такими как Dropbox.

В сообщении предлагается запустить это, чтобы увеличить количество доступных часов.

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

Все 56 Комментарий

Версия узла?

Кроме того, можете ли вы предоставить простой сценарий тестового примера, который вы используете (для тестирования).

используйте Node 0.10.21. С любым скриптом выдает ошибку.

Это та же проблема, что и № 144? Я не могу воспроизвести это на своем Mac (хотя я не спрашивал, какая у вас ОС, но предполагал, что тип * nix основан на пути в вашей вставке выше).

Не то же самое, здесь разные, это работает на одном процессоре. В другом - несколько процессоров, не облачных.

Испытал эту ошибку сегодня с несколькими приложениями (экспресс, restify).

NodeJS: v0.10.21
Версия ElementaryOS: 0.2 "Luna" (64-бит)
На основе: Ubuntu 12.04 («Точный»)
Ядро 3.5.0-43-generic

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)

воспроизвести:

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

app.js (с 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/');

У меня такая же ошибка с 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)

У меня такая же ошибка с проектом Complex.js с использованием coffeescript на Ubuntu 13.10 с узлом 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)

Может ли кто-нибудь попробовать это с помощью версии nodemon для разработчиков? Я внес много изменений и пытаюсь сконцентрировать свои усилия на том, чтобы в новой версии были устранены все эти проблемы.

Вы можете установить, используя npm install -g nodemon@dev

Работает для меня сейчас, не знаю почему. Используется последняя стабильная версия nodemon npm. Также была такая же проблема с coffeescript --watch, и теперь это тоже работает. Нет обновления узла, просто установите модули npm и обновления дистрибутива.

У меня такая же ошибка, но процесс остановлен:

$ 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, можете ли вы запустить для меня следующее (и вставить результат) в тот же каталог, в котором вы запускаете nodemon:

find . | wc

Я пытаюсь понять, что на самом деле вызывает эту проблему.

Вот результат:

$ find . | wc
   7677    7677  542965

Хорошо, это 7600 файлов, которые он тоже пытается привязать к часам.

Можете ли вы запустить tree и поместить результат на http://pastie.org/ (только потому, что он будет огромным).

Пасти сказал, что оно слишком велико (больше 64кб) и все-таки мне не нравится текст внизу: p (Все ваши пасты принадлежат нам). Я удалил некоторые части, относящиеся к моим проектам. Кстати, большинство файлов, конечно же, находится в node_modules.

Вы можете найти его по сути: https://gist.github.com/chok/7774318

Хорошо, я _ думаю_, что это проблема, полностью связанная с количеством отслеживаемых файлов (поскольку вам нужно привязать к каждому отдельному файлу). Я думал об игнорировании каталогов node_modules и .git по умолчанию, но можете ли вы попробовать сделать это с помощью команды ignore (при условии, что вы все еще используете 0.9.x):

nodemon -i node_modules

Конечно, это не нужно делать каждый раз, я просто пытаюсь подтвердить, что это проблема.

Не работает :(

$ 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)

Еще я пробую:

$ 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)

Можете ли вы запустить ту же самую команду, но добавить --dump и отправить мне ответ (когда вы выполняете версию с игнорированием).

Без изменений:

$ 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)

Хм, извините, не могли бы вы вставить --dump перед своим скриптом, он должен дать мне дамп конфигурации.

Я уже пробовал оба :(

$ 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)

Привет. Не хочу показаться глупым, но когда я столкнулся с этой ошибкой, я исправил ее, увеличив max_user_watches в моей системе. Я смотрел эту ветку, чтобы узнать, не происходит ли что-то еще.

@taylorjbrennan да, я знаю, что это решит проблему, но, хотя @chok может постоянно реплицироваться, мне нужно внести изменения, которые исправят nodemon без необходимости совершать магию max_user_watches io.

@remy отлично, я с нетерпением жду его.

@chok, можете ли вы попробовать это еще раз с помощью [email protected] - nodemon теперь по умолчанию игнорирует .git и node_modules / ** / node_modules, поэтому количество часов должно быть значительно меньше (я открою снова, если это все еще проблема) .

Я также попытаюсь обнаружить ошибку watch ENOSPC и вывести сообщение об увеличении max_user_watches . Не идеально, но я больше ничего не могу сделать.

У меня больше нет этого сообщения :), но теперь у меня есть проблема, объясненная в # 245

У меня только что возникла эта проблема, и это была проблема из-за того, что в системе было открыто слишком много файлов. (Sublime Text любит открывать много файлов, если вы позволите)

Как только я открываю каталог со многими файлами в Sublime 2, nodemon больше не работает и выдает указанную ошибку. Мне удалось обойти это только без использования функции «открытой папки» Sublimes. Спасибо за подсказку @ eyce9000.

@timtips то же самое с sublimetext3 и nodemon v1.3.1

@baio, можешь еще раз проверить это. Нет [email protected] - есть предварительный выпуск @ 1.3.0-1 - но он не находится в производстве в npm (можете ли вы также подтвердить свою версию npm)?

Он может закрыть этот баг? В новых версиях nodemon и nodejs эта проблема была решена, хотя я не могу сказать, что она решена полностью. Можно сказать, что уже не часто.

@alejonext, можешь ли ты попробовать с npm install -g nodemon@dev - Я внес довольно много изменений, которых нет в 1.2.1.

Ошибка на самом деле означает «Ошибка NO disk SPaCe» - но я думаю, что это связано с количеством отслеживаемых файлов, которое должно быть уменьшено путем изменения кода отслеживания ...

@remy Работает отлично :) спасибо за работу !!!!

Милая. Скорее всего, на этой неделе выйдет стабильный выпуск от 1.3.0 до npm с множеством исправлений ошибок.

@remy поразило время отклика. Спасибо!

@remy
исключение в узле уничтожения nodemon
Ошибка: смотреть ENOSPC
в errnoException (fs.js: 1030: 11)
в FSWatcher.start (fs.js: 1062: 11)
в Object.fs.watch (fs.js: 1087: 11)

узел v0.10.33
ОС: Linux ubuntu

Я исправил это с помощью этой команды https://github.com/ember-cli/ember-cli/issues/1240#issuecomment -47855317

но обновляет ли пакет рекомендованным способом?

Мне интересно, почему это вообще произошло. Я использую диспетчер версий узлов с
узел 0.12.0
npm 2.7.0
уголек 0.2.0

В системе есть ограничение на количество файлов, которые может просматривать пользователь. Вы можете довольно быстро закончить часы, если у вас есть Grunt, работающий с другими программами, такими как Dropbox.

В сообщении предлагается запустить это, чтобы увеличить количество доступных часов.

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

У меня проблема с "nodemon": "^1.4.1" и "node": "0.12.7" : разочарован:

Пожалуйста, попробуйте с # 625

Во вторник, 8 сентября 2015 г., 16:20 Уэсли Кейроз [email protected] написал:

У меня проблема с «nodemon»: «^ 1.4.1» и «node»: «0.12.7» [изображение:
:расстроенный:]

-
Ответьте на это письмо напрямую или просмотрите его на GitHub
https://github.com/remy/nodemon/issues/214#issuecomment -138598438.

Пробовал с alpha но все равно получаю ENOSPC ...
В моем sysctl.conf есть fs.inotify.max_user_watches=10000 .
Если я изменю его на 524288 он будет работать, но на моем "dev-сервере" я не смогу это изменить.

Сколько файлов вы пытаетесь посмотреть? т.е. сколько под вашим
рабочий каталог?

Во вторник, 8 сентября 2015 г., в 17:37 Уэсли Кейро [email protected] написал:

Пробовал с альфа-версией, но все еще получаю ENOSPC ...
В моем sysctl.conf fs.inotify.max_user_watches = 10000.
Если я поменяю его на 524288, он будет работать, но на моем "dev-сервере" я не смогу
чтобы изменить это.

-
Ответьте на это письмо напрямую или просмотрите его на GitHub
https://github.com/remy/nodemon/issues/214#issuecomment -138624285.

Не много, максимум 30.
Но я думаю, что nodemon пытается наблюдать за node_modules в корне проекта.
Ниже приведена конфигурация, переданная в nodemon (я использую ее как модуль узла):

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

в папке сервера есть:
7 кофейных файлов
5 файлов json
а в общей папке всего 1 файл json ...

Да ... так что беги find . | wc -l и что тебе даст этот номер? Хотя по умолчанию предполагается, что node_modules игнорируется, возможно, это не принимается во внимание.

Запуск find . | wc -l в корне проекта дает мне 18266 но когда я удаляю node_modules и bower_components дает только 320 .

Хорошо, я думаю, что часы _is_ включают node_modules - это часть рефакторинга # 625, и ее нужно исправить.

@wesleycoder вы можете попробовать с последней версией nodemon@dev (это должна быть версия 1.5.0-alpha4 ) и запустить с DEBUG=nodemon <your normal nodemon command> затем вставить полный вывод.

Ого!
Оно работает!
Ошибок нет!
Спасибо!

Это может быть связано с тем, что ваша система недоступна для просмотра файлов пользователем. вы можете использовать следующую командную строку в ubuntu
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
или попробуйте
npm dedupe

Ссылка на этот stackoverflow

@ankibalyan @uttampanara

оно работает !
echo fs.inotify.max_user_watches = 524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

у меня тоже работает!
echo fs.inotify.max_user_watches = 524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

То же самое ! : +1:
echo fs.inotify.max_user_watches = 524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Запустите эту команду

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

Другое возможное решение - добавить файл конфигурации nodemon.json в корневую папку и указать шаблоны игнорирования, например:
nodemon.json

{
  "ignore": [
    "*.test.js", 
    "dist/*"
  ]
}
  • Обратите внимание, что по умолчанию .git , node_modules , bower_components , .nyc_output , coverage и .sass-cache игнорируются, поэтому вы не должны не нужно добавлять их в вашу конфигурацию.

Трюк с уведомлением fs, похоже, не работает с контейнером докеров ... по крайней мере, не в Alpine 3.8, я получаю ту же ошибку ENOSPC. Это становится все более важным, поскольку инструменты устаревают, а нам все еще нужно поддерживать устаревшие продукты.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

jonerer picture jonerer  ·  4Комментарии

medoix picture medoix  ·  4Комментарии

dimsmol picture dimsmol  ·  4Комментарии

endquote picture endquote  ·  4Комментарии

Autre31415 picture Autre31415  ·  4Комментарии