Nodemon Error: "파일 감시자 수에 대한 시스템 제한에 도달했습니다.
그래프QL을 배우고 있으며 사용 중입니다.prisma-binding
GraphQL 작업의 경우.나는 이것에 직면해 있습니다.nodemon
Node.js 서버를 시작하는 동안 오류가 발생했으며 서버가 자동으로 생성한 스키마 파일의 경로를 제공합니다.graphql-cli
이 오류는 모두 무엇에 관한 것입니까?
오류:
내부 감시 실패: ENOSPC:파일 감시기 수에 대한 시스템 제한에 도달했습니다. '/media/rehan-satar/Development/All projects/GrpahQl/graph-ql-course/graphql-prisma/src/generated 보기
업데이트됨(2023년 5월)
댓글에 몇 가지 팁이 있는데 이 질문을 업데이트하기 위해 가져왔습니다.이 문제가 발생하면 Linux 디스트리뷰터를 사용하고 있을 것이며 프로젝트가 시스템의 파일 감시기 제한에 도달하고 있을 것입니다.
다음을 실행하여 현재 알림 파일 감시 제한을 확인합니다.
$ cat /proc/sys/fs/inotify/max_user_watches
다음을 사용하여 일시적으로 새 한계치를 설정할 수 있습니다.
$ sudo sysctl fs.inotify.max_user_watches= 131070
$ sudo sysctl -p
또는 영구 제한을 설정할 수 있습니다.
echo fs.inotify.max_user_watches= 131070 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
131070 파일 제한을 설정합니다(댓글에서 @Dmitriy가 제안한 대로).이 제한이 시스템에 적용되지 않으면 이 수를 두 배로 늘릴 수 있습니다.
이 설명서에서는 자세한 기술 정보를 제공합니다.
구답
Linux를 사용하는 경우 프로젝트가 시스템의 파일 감시자 제한에 도달한 것입니다.
이 문제를 해결하려면 터미널에서 다음을 시도하십시오.
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
시스템 사용자에 대한 알림 감시자 제한을 늘려야 합니다.명령줄에서 다음을 사용하여 이 작업을 수행할 수 있습니다.
sudo sysctl -w fs.inotify.max_user_watches=100000
하지만 이는 재부팅할 때까지만 유지됩니다.영구적으로 설정하려면 다음 파일을 추가합니다./etc/sysctl.d/10-user-watches.conf
다음 내용을 포함합니다.
fs.inotify.max_user_watches = 100000
위(또는 기타)를 변경한 후 의 모든 sysctl 구성 파일에서 설정을 다시 로드할 수 있습니다./etc
와 함께sudo sysctl --system
(이전 시스템에서는 사용해야 할 수 있음)sudo sysctl -p
대신.)
Ubuntu 컴퓨터에서 Visual Studio Code로 작업할 때 가끔 이 문제가 발생합니다.
이 경우 다음 해결 방법이 도움이 됩니다.
감시자를 중지하고 Visual Studio Code를 닫고 감시자를 시작한 다음 Visual Studio Code를 다시 엽니다.
변경 사항을 테스트하기 위해 파라미터 값을 524288로 임시 설정했습니다.
sysctl -w fs.inotify.max_user_watches=524288
그런 다음 다음 검증을 진행합니다.
npm run serve
그리고 그 문제는 해결되었습니다.영구적으로 만들려면 "/etc/sysctl.conf" 파일에 줄을 추가한 다음 sysctl 서비스를 다시 시작해 보십시오.
cat /etc/sysctl.conf | tail -n 2
fs.inotify.max_user_watches=524288
sudo systemctl restart systemd-sysctl.service
저도 같은 문제가 있었습니다.하지만, 제 것은 웹팩에서 온 것이었습니다.고맙게도, 그들은 그들의 사이트에 훌륭한 솔루션을 가지고 있었습니다.
일부 시스템의 경우 많은 파일을 시청하면 CPU 또는 메모리 사용량이 많을 수 있습니다.정규식을 사용하여 node_modules와 같은 큰 폴더를 제외할 수 있습니다.
파일 webpack.config.js
module.exports = {
watchOptions: {
ignored: /node_modules/
}
};
이는 Linux 커널의 inotify(inode notify) 문제이므로 다음 명령을 사용하여 해결할 수 있습니다.
PC를 재부팅할 때까지 임시 솔루션의 경우 다음 명령을 사용합니다.
sudo sysctl -w fs.inotify.max_user_watches=100000
영구적인 해결책:영구적으로 설정하려면 /etc/sysctl.d/10-user-watches.conf라는 파일을 다음 내용으로 추가합니다.
fs.inotify.max_user_watches = 10000
변경한 후 /etc의 모든 sysctl 구성 파일에서 설정을 다시 로드합니다.sudo sysctl -p
.
관찰자 수를 얼마나 늘려야 하는지 알기 어려울 수 있습니다.관찰자 수를 두 배로 늘릴 수 있는 유틸리티는 다음과 같습니다.
function get_inode_watcher_count() {
find /proc/*/fd -user "$USER" -lname anon_inode:inotify -printf '%hinfo/%f\n' 2>/dev/null |
xargs cat |
grep -c '^inotify'
}
function set_inode_watchers() {
sudo sysctl -w fs.inotify.max_user_watches="$1"
}
function double_inode_watchers() {
watcher_count="$(get_inode_watcher_count)"
set_inode_watchers "$((watcher_count * 2))"
if test "$1" = "-p" || test "$1" = "--persist"; then
echo "fs.inotify.max_user_watches = $((watcher_count * 2))" > /etc/sysctl.d/10-user-watches.conf
fi
}
# Usage
double_inode_watchers
# to make the change persistent
double_inode_watchers --persist
Linux 서버에서 nodemon 명령을 수행하는 동안 Visual Studio Code(서버 SSH)가 열려 있습니다.그래서 Juri Sinitson의 답변을 바탕으로 Visual Studio Code를 닫고 nodemon 명령을 다시 실행합니다.그리고 그것은 동작한다.
나의 nodemon 명령:
nodemon server.js
npm 시을 ▁via▁n
여기에 제시된 대부분의 답변이 맞다고 생각하지만 systemctl 명령을 사용하여 서비스를 다시 시작하면 문제가 해결되었습니다.아래 명령을 확인하십시오.
sudo systemctl restart systemd-sysctl.service
다음과 같은 대답을 따라야 합니다.
또는:
버전의 Ubuntu 버우경을 하십시오.sudo sysctl --system
이 설정을 새로 읽습니다.
하지만 저의 경우에는 이러한 설정을 이미 얼마 전에 수정했기 때문에 이러한 구성 파일에 대한 변경 사항이 적용되지 않았습니다.그리고 그것을 잊었습니다.그리고 충돌하는 구성 파일을 잘못된 위치에 배치했습니다.
에 의하면man sysctl.d
은 이한설배수있다니습할치을에 할 수 ./etc/sysctl.d/*.conf
,/run/sysctl.d/*.conf
그리고./usr/lib/sysctl.d/*.conf
.
제 경우에는 두 개의 파일이 있었습니다.
/etc/sysctl.d/10-user-watches.conf
/usr/lib/sysctl.d/30-tracker.conf <<< Older file, with lower limit
이름 지정 규칙 때문에 이전 파일이 마지막으로 읽혀져 우선 순위가 지정되었습니다.
저는 파이썬과 venv 모듈과 함께 Vite를 사용하는데 큰 venv 폴더(10k 파일) 때문에 동일한 오류가 발생했습니다.
Vite 구성을 사용하면 파일 감시기에서 디렉터리를 무시할 수 있으므로 venv가 무시된 상태에서 오류가 사라졌습니다.
export default defineConfig({
server: {
watch: {
ignored: ['**/venv/**'],
}
},
})
리눅스에서, 저는 실제로 sudo와 함께 실행했습니다. sudo npm start
언급URL : https://stackoverflow.com/questions/53930305/nodemon-error-system-limit-for-number-of-file-watchers-reached
'programing' 카테고리의 다른 글
Android용으로 개발할 때 이클립스 콘솔로 메시지를 출력하는 방법 (0) | 2023.05.21 |
---|---|
C#에서 SelectAll과 ConvertAll의 차이 (0) | 2023.05.21 |
첫 번째 오류 시 중지 (0) | 2023.05.21 |
Python Panda가 셀에 목록을 삽입합니다. (0) | 2023.05.21 |
Git 하위 모듈을 분리하는 방법은 무엇입니까? (0) | 2023.05.21 |