"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+).
Для более подробной информации смотрите этот ответ.