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
답변
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
재부팅 후에도 지속됩니다.
기술 정보 소스
답변
ENOSPC
드라이브에 공간이 없음을 의미합니다.
아마도 /tmp
가득 찼습니까? npm
을 설정하여 다른 임시 폴더를 사용 하도록 구성 npm config set tmp /path/to/some/other/dir
하거나 /tmp
폴더에서 모든 항목을 삭제할 수 있습니다.
출처 : npm 1.1.21은 github의 npm 저장소에 ENOSPC 를 쓸 수 없습니다 .
참고 위의 소스에서 설명한 방식으로 문제를 해결했습니다. 그러나 아래 의 Murali Krishna의 답변을 참조하십시오 .
답변
이것을 인정 할 수는 없지만 @grenadenpm dedupe
는 증상이 아닌 원인 (너무 많은 파일)을 해결할 것이라고 지적했습니다 .
출처 : 그런트 시계 오류-대기 중 … 치명적인 오류 : ENOSPC를보십시오 .
답변
내 문제를 해결하는 간단한 방법은 다음과 같습니다.
npm cache clear
npm 또는 그것에 의해 제어되는 프로세스가 너무 많은 파일을보고 있습니다. 빌드 노드에서 max_user_watches를 업데이트하면 영구적으로 수정할 수 있습니다. 데비안의 경우 터미널에 다음을 입력하십시오.
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
당신이 inotify 감시자의 양을 증가시키는 방법을 알고 싶다면 링크를 클릭하십시오.
답변
기계를 재부팅하면 문제가 해결되었습니다. 나는 처음으로 닦아 /tmp/
봤지만 노드는 여전히 불평했다.
답변
Linux에서는 파일 감시 수에 제한이있을 수 있습니다.
개발 서버는 inotify 를 사용 하여 핫 리로드를 구현합니다. inotify API를 사용하면 개발 서버가 파일을보고 변경 될 때 알림을받을 수 있습니다.
기본 inotify 파일 감시 제한은 배포마다 다릅니다 (Fedora에서 8192). 개발 서버의 요구는 종종이 제한을 초과합니다.
가장 좋은 방법은 파일 감시 제한을 일시적으로 늘리고 마음에 들면 영구적으로 구성을 변경하는 것입니다. 그러나 이것은 노드뿐만 아니라 전체 시스템의 구성을 변경합니다.
현재 한도를 보려면
sysctl fs.inotify.max_user_watches
일시적으로 새로운 제한을 설정하려면
# this limit will revert after reset
sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl -p
# now restart the server and see if it works
영구 제한을 설정하려면
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
답변
우분투 18.04에서 이온 / 노드로 파일 감시를 다시 활성화하는 데 사용하는 트릭을 시도했으며 여기에서도 작동합니다. 시스템 conf 파일에 액세스 할 수없는 사람들에게 유용 할 수 있습니다.
CHOKIDAR_USEPOLLING=1 npm start
