Иногда, когда я использую Git и не могу выполнить команду sudo
, он сообщает
fork: Resource temporarily unavailable
Что это значит, и что мне с этим делать?
Эта ошибка ветвления обычно означает, что родительская программа не смогла выполнить один или несколько дочерних процессов, поскольку был достигнут предел ресурсов: максимально допустимое количество процессов (ошибка 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. Этот лимит сохраняется до окончания текущего сеанса термина./Library/LaunchDaemons/limit.maxfiles.plist
(только OS X 10.9+). Для более подробной информации смотрите этот ответ.