"fork: Ressource vorübergehend nicht verfügbar" von git in MacOS El Capitan

1723
John Roca

Wenn ich Git verwende und keinen sudoBefehl ausführen kann, wird dies manchmal berichtet

fork: Resource temporarily unavailable

Was bedeutet das und was muss ich dagegen tun?

3

1 Antwort auf die Frage

0
Quinn Comendant

Dieser Fork-Fehler bedeutet normalerweise, dass das übergeordnete Programm einen oder mehrere untergeordnete Prozesse nicht ausführen konnte, da ein Ressourcenlimit erreicht wurde, entweder die maximal zulässige Anzahl von Prozessen (der EAGAINFehler) oder die maximal zulässige Speichermenge ( ENOMEMFehler). Die Manpage von Fork (2) sagt:

 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. 

Es gibt verschiedene Möglichkeiten, OS X Beschränkungen aufzuerlegen:

  • Sitzungslimit pro Sitzung, das vom ulimitBefehl festgelegt wird. Sie können das aktuelle Limit anzeigen, indem Sie ausführen ulimit -aund ein neues Limit festlegen, z. B. ulimit -u 1000um das Limit für max proc auf 1000 festzulegen. Dieses Limit bleibt bis zum Ende der aktuellen Termian-Sitzung erhalten.
  • /Library/LaunchDaemons/limit.maxfiles.plistSystemgrenzen werden mit launchd in einer Datei um festgelegt (nur OS X 10.9+).

Weitere Einzelheiten finden Sie in dieser Antwort .