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

31

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 kommt das? Und wie kann ich das beheben?

Rakesh KR
quelle
2
Sieht aus wie Swap überlastet (/ tmp Dateisystem möglicherweise voll)
Lambert
2
ulimit -a, vielleicht hast du ein Prozesslimit erreicht
c4f4t0r

Antworten:

20

Dies kann an einer Ressourcenbeschränkung liegen, die entweder auf dem Server selbst (oder) speziell für Ihr Benutzerkonto festgelegt ist. Limits in Ihrer Shell können über überprüft werden ulimit -a. ulimit -uWenn Sie die maximale Anzahl von Benutzerprozessen erreicht haben, kann fork keine neuen erstellen und schlägt mit diesem Fehler fehl. Dies könnte auch an einem Swap / Memory-Problem liegen

VenkatC
quelle
9

fork: Ressource vorübergehend nicht verfügbar

Der Fehler bedeutet, dass die aktuelle Shell-Ressource begrenzt ist (überprüfen Sie die Grenzen durch ulimit -a). Sie können es also entweder in einer anderen Shell versuchen oder die Ressourcen mithilfe eines ulimitBefehls erhöhen, mit dem gesteuert wird, welche Ressourcen für die Shell verfügbar sind und welche Prozesse sie auf dem Betriebssystem erstellt.

Versuchen Sie Folgendes, um die Grenzwerte zu erhöhen:

ulimit -Sn unlimited && ulimit -Sl unlimited

die weichen Grenzen auf harte zu erhöhen, oder:

ulimit -l unlimited
ulimit -n 10240 

um die maximale Größe eines Prozesses auf unbegrenzt und die maximale Anzahl offener Dateien auf 10240 zu setzen.

Siehe: help ulimitfür weitere Informationen.

Um es dauerhaft zu machen, fügen Sie die obigen Einstellungen in Ihre Start- RC- Dateien ein (z ~/.bashrc. B. ).


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

kern.maxprocperuid=1000
kern.maxproc=2000
Kenorb
quelle
1
Bedeutet der "Wiederholungsversuch", dass der Versuch wiederholt wird, bis Ressourcen verfügbar werden, wenn dieser Fehler auftritt?
DaveTheMinion
@DavidB Oder dass es erneut versucht hat , aber fehlgeschlagen ist.
Kusalananda
@ Kusalananda Okay, danke.
DaveTheMinion
0

Das Problem kann auch mit folgenden Befehlen behoben werden:

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

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

Arun
quelle
Das Beenden jedes einzelnen Prozesses, der dem Benutzer gehört, scheint ein bisschen gewagt zu sein. Auch dieser yumBefehl wäre wahrscheinlich nicht in der Lage, sich zu teilen.
Kusalananda
Der Befehl yum wird über den Root-Benutzer ausgeführt, vorausgesetzt, das Problem ist bei einem anderen Benutzer als root aufgetreten
Arun
Wenn sich die Shell nicht teilen dfkann, treten ebenfalls Probleme auf sudo.
Kusalananda