"fork: Resource temporarily unavailable" from git in MacOS El Capitan

Sometimes when I am using Git and cannot do a sudo command, it reports

fork: Resource temporarily unavailable

What does this mean, and what should I do about it?

1 Answer

This fork error usually means the parent program was unable to execute one-or-more child processes because a resource limit was reached, either the maximum allowed number of processes (the EAGAIN error) or maximum allowed amount of memory (ENOMEM error). The man page of Fork(2) says:

 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.

There are several ways that limits are imposed on OS X:

  • Per-session limit set by the ulimit command. You can view current limit by running ulimit -a and set a new limit, e.g., ulimit -u 1000 to set the max proc limit to 1000. This limit remains until the current termian session ends.
  • System limits are set using launchd, in a file at /Library/LaunchDaemons/limit.maxfiles.plist (only OS X 10.9+).

For more detail see this answer.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like