Node.js: что такое ошибка ENOSPC и как ее решить?
У меня проблема с Node.js и загрузкой файлов на сервер. Для загрузки файлов на сервер я использую этот плагин. При запуске загрузки файла на сервер произошел сбой процесса Node.js, который выдает ошибку:
Ошибка: ENOSPC.
Код сервера не работает.
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.9G 4.1G 3.5G 55% /
udev 288M 8.0K 288M 1% /dev
tmpfs 119M 168K 118M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 296M 0 296M 0% /run/shm
/dev/xvdf 9.9G 3.0G 6.5G 32% /vol
overflow 1.0M 1.0M 0 100% /tmp
Ответы
Ответ 1
Запустите приведенную ниже команду, чтобы избежать ENOSPC:
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
Затем выполните:
sysctl --system
Это также будет сохраняться при перезагрузке. Техническая информация Источник
Ответ 2
ENOSPC
означает, что на диске нет места.
Возможно, /tmp
заполнен? Вы можете настроить npm
на использование другой временной папки, установив npm config set tmp /path/to/some/other/dir
или, возможно, удалить все из папки /tmp
.
Источник: npm 1.1.21 не может писать, ENOSPC в npm repo в github.
Примечание. Я решил свою проблему так, как описано выше. Однако см. Murali Krishna answer ниже, что более полно.
Ответ 3
Не могу поверить в это, но @grenade указал, что npm dedupe
исправит причину (слишком много файлов), а не симптом.
Источник: Ошибка грубой вахты - Ожидание... Неустранимая ошибка: смотрите ENOSPC.
Ответ 4
Перезагрузка машины решила проблему для меня. Я сначала попробовал стирать /tmp/
, но node все еще жаловался.
Ответ 5
Простой способ решить мою проблему:
npm cache clear
npm или процесс, контролируемый им, просматривает слишком много файлов. Обновление max_user_watches на узле сборки может исправить это навсегда. Для debian установите на терминале следующее:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Если вы хотите знать, как увеличить количество наблюдателей inotify, просто нажмите на ссылку.
Ответ 6
Если ваш монтируемый /tmp
файловая система Linux монтируется как переполнение (часто размером 1 МБ), это, вероятно, связано с тем, что вы не указали /tmp
как свой собственный раздел, а ваша корневая файловая система была заполнена, а /tmp
была восстановлен как резерв.
Чтобы исправить это после того, как вы очистили пространство, просто отключите резервную копию и он должен перемонтироваться в исходной точке:
sudo umount overflow
Ответ 7
Я решил свою проблему, убив все процессы отслеживания трекера (вы можете попробовать, если используете GDM, очевидно, не ваш случай, если script работает на сервере)
tracker-control -r
Моя настройка: Arch с GNOME 3
Ответ 8
Для меня я достиг максимального количества файлов, которыми может владеть пользователь
Проверьте свои номера с помощью quota -s
и что число под файлами не слишком близко к квоте
Ответ 9
Если вы столкнулись с этой ошибкой при попытке запустить команду ember server
, пожалуйста, rm -rf tmp
. Затем запустите ember s
снова. Это помогло мне.
Ответ 10
для тех, кто на локальном компьютере, просто закройте терминал и перезапустите, он работает для меня
Ответ 11
В Ubuntu 18.04 я попробовал трюк, который использовался для повторной активации просмотра файла по ionic/node, и он также работает здесь. Это может быть полезно для тех, кто не имеет доступа к системным файлам conf.
CHOKIDAR_USEPOLLING=1 npm start
Ответ 12
У меня была та же ошибка. Пока я запускаю приложение Reactjs. Я просто удаляю папку node_modules, набираю и снова устанавливаю node_modules. Это устранит ошибку.
Ответ 13
В моем случае, в linux, sudoing исправил проблему.
Пример:
sudo gulp dev