fork: retry: Ressource vorübergehend nicht verfügbar

Während ich eine Verbindung zu meinem Server herstelle, erhalte ich

-bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: Resource temporarily unavailable 

Und ich versuche auch, Befehle zu befolgen, dann ist das Ergebnis dasselbe.

-bash-4.1$ df -h -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: Resource temporarily unavailable -bash-4.1$ -bash-4.1$ ls -lrth -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: Interrupted system call -bash-4.1$ -bash-4.1$ ps -aef | grep `pwd` -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: Resource temporarily unavailable -bash-4.1$ 

Warum dieses Kommen? Und wie kann ich das beheben?

Kommentare

  • Sieht aus, als wäre der Swap überlastet (/ tmp-Dateisystem möglicherweise voll)
  • ulimit -a, vielleicht haben Sie ein Prozesslimit erreicht

Antwort

Dies könnte auch an einem Ressourcenlimit liegen auf dem Server selbst (oder) spezifisch für Ihr Benutzerkonto. Grenzwerte in Ihrer Shell können über ulimit -a überprüft werden. Insbesondere auf ulimit -u max Benutzerprozesse prüfen. Wenn Sie die maximale Anzahl von Prozessen erreicht haben, kann fork keine neuen erstellen und schlägt mit diesem Fehler fehl. Dies kann auch auf ein Swap- / Speicherressourcenproblem zurückzuführen sein.

Antwort

Fork: Ressource vorübergehend nicht verfügbar

Der Fehler bedeutet, dass die aktuelle Shell-Ressource begrenzt ist (überprüfen Sie die Grenzwerte mit ulimit -a). Sie können es also entweder in einer anderen Shell versuchen oder die Ressourcen erhöhen, indem Sie den Befehl ulimit verwenden, der die für die Shell verfügbaren Ressourcen und die auf dem Betriebssystem erstellten Prozesse steuert.

Um die Grenzwerte zu erhöhen, führen Sie Folgendes aus:

ulimit -Sn unlimited && ulimit -Sl unlimited 

, um die weichen Grenzwerte auf hart zu erhöhen, oder:

ulimit -l unlimited ulimit -n 10240 

, um die maximale Größe eines Prozesses auf unbegrenzt und die maximale Anzahl geöffneter Dateien auf 10240 festzulegen.

Siehe: help ulimit für Weitere Informationen.

Fügen Sie die obigen Einstellungen zu Ihren rc -Startdateien hinzu (z. B. ~/.bashrc).


Sie können auch /etc/sysctl.conf (siehe: man sysctl.conf) verwenden, um die Kernel-Limits zu erhöhen, z. B.

kern.maxprocperuid=1000 kern.maxproc=2000 

Kommentare

  • Wenn dieser Fehler auftritt, wird die " Wiederholen " impliziert, dass es wiederholt versucht wird, bis res Unsere Daten werden verfügbar?
  • @DavidB Oder dass es erneut versucht hat, aber fehlgeschlagen ist.
  • kern.maxprocperuid, kern.maxproc, kernel.maxprocperuid und kernel. maxproc gibt es unter Ubuntu nicht. Was ist dort die Alternative?

Antwort

Das Problem kann auch mit den folgenden Befehlen gelöst werden:

yum install psmisc killall -STOP -u user1 killall -KILL -u user1 

Hier ist Benutzer1 die Benutzergruppe, für die das Limit überschritten wurde.

Kommentare

  • Das Töten jedes einzelnen Prozesses, der dem Benutzer gehört, scheint ein bisschen schwerfällig zu sein. Außerdem kann der Befehl yum wahrscheinlich auch nicht gegabelt werden.
  • Der Befehl yum wird über den Root-Benutzer ausgeführt, sofern ein anderes Problem aufgetreten ist Benutzer als root
  • Wenn die Shell df nicht teilt, treten Probleme beim Ausführen von sudo auf.
  • BOFH-Stil. Ich mag es!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.