Помилка дивіться у грунті - чекаю… Фатальна помилка: дивіться ENOSPC


524

Чому я отримую, Waiting...Fatal error: watch ENOSPCколи запускаю годинник? Як вирішити це питання?


13
Для тих, хто переглядає це, це не характерно для gruntбудь-якої програми, яка використовує інотифікувати під ним. На unix.stackexchange.com/questions/13751/… є гарне пояснення .
Джессі Добрий

Відповіді:


1359

Провівши деякі дослідження знайшов рішення. Виконайте команду нижче.

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

Для Arch Linux додайте цей рядок до /etc/sysctl.d/99-sysctl.conf:

fs.inotify.max_user_watches=524288

45
Ну, мабуть, вирішив мою проблему ... Але як? Чому? Чи є у вас джерела, які пояснюють, що відбувається (або відбувалося). Або ви можете самі це зробити? У будь-якому випадку, дякую ...
slacktracer

116
Система має обмеження на кількість файлів, які може переглядати користувач. Ви можете швидко закінчити годинник, якщо у вас Grunt працює з іншими програмами, такими як Dropbox. Ця команда збільшує максимальну кількість годин, які може мати користувач.
Бенджамін Маннс

62
Для Arch Linux додати fs.inotify.max_user_watches=524288до /etc/sysctl.d/99-sysctl.confі потім виконати sysctl --system. Це також буде зберігатися через перезавантаження. Детальніше: wiki.archlinux.org/index.php/Sysctl
tnajdek

38
npm dedupeочистив це для мене. випуск
reergymerej

25
пояснення: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf пише в кінці файлу /etc/sysctl.conf рядок "fs.inotify.max_user_watches = 524288" sudo sysctl -p перенастроює ядро ​​під час виконання, завантажуючи файл /etc/sysctl.conf як параметр
kds

186

Щоразу, коли вам потрібно бігти, sudo something ...щоб щось виправити, вам слід зробити паузу, щоб подумати про те, що відбувається. Незважаючи на те, що прийнята відповідь тут цілком коректна, це лечить симптом, а не проблему. Сортайте еквівалент купівлі більших сідла, щоб вирішити проблему: помилка, не можна завантажувати більше сміття на поні. У Поні стільки завантаженого сміття, що поні втрачає свідомість.

Альтернативою (можливо порівнянною з вивезенням зайвого сміття з поні та розміщенням на смітнику) є запуск:

npm dedupe

Тоді йдіть, вітайте себе за те, що зробили поні щасливим.


42
Дякуємо, що зробили поні щасливим.
Крістіан

2
Що саме це робить? Це точно вирішило мою проблему. Дякуємо @grenade
Арджун KR

4
Команда 'npm dedupe' проходить через дерево модуля npm і максимально переміщує кожен пакет вгору по дереву. В результаті виходить плоске дерево. Він переміщує пакет навіть тоді, коли він не дублюється. Детальніше про те, що відбувається з різними версіями модулів у цьому випадку, ви можете прочитати на docs.npmjs.com/cli/dedupe
Arun Reddy

1
це не допомогло, я спробував, sudoі зараз це працює на мене.
asedsami

6
У моєму випадку, здається, у мене проблема встановлення Dropbox, який, здається, використовує багато годин. Тож мені довелося використовувати: fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -pяк у прийнятій відповіді, але +1 для того, щоб навчити менеnpm dedupe
Йоганн Ехаваррія

36

Спробувавши відповідь гранати, ви можете використовувати тимчасове виправлення:

sudo bash -c 'echo 524288 > /proc/sys/fs/inotify/max_user_watches'

Це робить те саме, що відповідь kds , але не зберігаючи зміни. Це корисно, якщо помилка виникає лише через деякий час роботи вашої системи.


3
Це має бути прийнятою відповіддю, оскільки проблема, природно, викликана тим, що працює на даний момент, а не поганою конфігурацією (див. Приклад "поні").
arielnmz

7

Щоб дізнатися, хто створює ініціативні екземпляри , спробуйте цю команду ( джерело ):

for foo in /proc/*/fd/*; do readlink -f $foo; done | grep inotify | sort | uniq -c | sort -nr

Моя виглядала так:

 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

Використовуючи ps -p 2857, я зміг визначити процес 2857 як sublime_text. Лише після закриття всіх піднесених вікон я зміг запустити сценарій свого вузла.


те саме зі мною для vscode, але я думаю, що це стосується і файлових годин
pcnate

3

Я зіткнувся з цією помилкою після того, як мій клієнтський ПК зазнав аварії, jest --watchкоманда, яку я виконував на сервері, зберігалася, і я спробував запустити jest --watchще раз.

Доповнення до /etc/sysctl.confописаним у відповідях вище працював навколо цього питання, але також важливо , щоб знайти мій старий процес через ps aux | grep nodeта killце.


0

У моєму випадку це було пов’язано з запуском vs-коду на моїй машині Linux. Я проігнорував попередження, яке вискочило про вахту вахти файлів. Рішення знаходиться на сторінці документів-код vs-коду для Linux https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in- це велика робоча область-помилка-enospc

Рішення майже таке ж (якщо не таке), як прийняті відповіді, просто має більше пояснень для тих, хто потрапляє сюди після наткнення на проблеми з vs-кодом.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.