"fork: ресурс временно недоступен" из git в MacOS El Capitan

Иногда, когда я использую Git и не могу сделать sudo команда, это сообщает

fork: Resource temporarily unavailable

Что это значит, и что мне с этим делать?

1 ответ

Решение

Эта ошибка ветвления обычно означает, что родительская программа не смогла выполнить один или несколько дочерних процессов, поскольку достигнут предел ресурса, либо максимально допустимое число процессов (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+).

Для более подробной информации смотрите этот ответ.

Другие вопросы по тегам