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 vonsudo
auf. - BOFH-Stil. Ich mag es!