Uwaga: To rozwiązanie działa/może nie działać z najnowszymi systemami Mac OS (komentarze wskazują>10,13?). Najwyraźniej zmiany zostały wprowadzone ze względów bezpieczeństwa.
Koncepcyjnie rozwiązanie ma zastosowanie - oto kilka źródeł dyskusji:
- https://wilsonmar.github.io/maximum-limits/
- https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c
- https://superuser.com/questions/433746/jest-naprawa-dla-zbyt-wielu-otwartych-plików-w-błędzie-systemu-na-os-x-10-7 -1
--
Miałem ten sam problem (wykonywanie innej operacji, ale nadal błąd „Zbyt wiele otwartych plików”) i jak mówi lese, wydaje się, że na komputerze z uruchomionym mongodem wydaje się, że jest to limit „maksymalnych plików”.
Na komputerze Mac lepiej sprawdzać limity za pomocą:
sudo launchctl limit
To daje:
<limit name> <soft limit> <hard limit>
cpu unlimited unlimited
filesize unlimited unlimited
data unlimited unlimited
stack 8388608 67104768
core 0 unlimited
rss unlimited unlimited
memlock unlimited unlimited
maxproc 709 1064
maxfiles 1024 2048
Aby obejść ten problem, tymczasowo ustawiłem wyższy limit (mój był pierwotnie mniej więcej miękki:256, twardy:1000 lub coś dziwnego):
sudo launchctl limit maxfiles 1024 2048
Następnie ponownie uruchom operację zapytania/indeksowania i sprawdź, czy się zepsuje. Jeśli nie, i aby zachować wyższe limity (zostaną zresetowane, gdy wylogujesz się z sesji powłoki, w której je ustawiłeś), utwórz plik '/etc/launchd.conf' z następującym wierszem:
limit maxfiles 1024 2048
(lub dodaj tę linię do istniejącego pliku launchd.conf, jeśli już go masz).
To ustawi maxfile przez launchctl w każdej powłoce podczas logowania.