Эта ошибка ветвления обычно означает, что родительская программа не смогла выполнить один или несколько дочерних процессов, поскольку был достигнут предел ресурса: максимально допустимое количество процессов ( EAGAIN
ошибка) или максимально допустимое количество памяти ( ENOMEM
ошибка). Справочная страница Fork (2) гласит:
Fork() will fail and no child process will be created if: [EAGAIN] The system-imposed limit on the total number of processes under execution would be exceeded. This limit is configuration-dependent. [EAGAIN] The system-imposed limit MAXUPRC (<sys/param.h>) on the total number of pro- cesses under execution by a single user would be exceeded. [ENOMEM] There is insufficient swap space for the new process.
Есть несколько способов наложения ограничений на OS X:
- Предел сеанса, установленный
ulimit
командой. Вы можете просмотреть текущий лимит, запустив егоulimit -a
и установив новый лимит, например,ulimit -u 1000
чтобы установить максимальный предел срабатывания равным 1000. Этот лимит сохраняется до окончания текущего сеанса работы с термином. - Системные ограничения устанавливаются с помощью launchd в файле в
/Library/LaunchDaemons/limit.maxfiles.plist
(только OS X 10.9+).
Для более подробной информации смотрите этот ответ .