fork: retry: Resource tijdelijk niet beschikbaar

Terwijl ik verbinding maak met mijn server krijg ik,

-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 

En ik probeer ook commandos te volgen, dan is het resultaat hetzelfde.

-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$ 

Waarom komt dit eraan? En hoe kan ik het oplossen?

Opmerkingen

  • Het lijkt erop dat de swap overbelast is (/ tmp-bestandssysteem mogelijk vol)
  • ulimit -a, misschien heb je een proceslimiet bereikt

Antwoord

Dit kan te wijten zijn aan een of andere bronlimiet, ofwel op de server zelf (of) specifiek voor uw gebruikersaccount. Limieten in je shell kunnen worden gecontroleerd via ulimit -a. Controleer in het bijzonder op ulimit -u max. Gebruikersprocessen, als je max. Processen hebt bereikt, kan fork geen nieuwe maken en mislukt met die fout. Dit kan ook het gevolg zijn van een probleem met swap- / geheugenresources.

Answer

fork: Resource tijdelijk niet beschikbaar

De fout betekent dat de huidige shell-resource beperkt is (controleer de limieten met ulimit -a). U kunt het dus proberen in een andere shell, of de bronnen vergroten door het ulimit -commando te gebruiken dat de bronnen controleert die beschikbaar zijn voor de shell en deze verwerkt op het besturingssysteem.

Om de limieten te verhogen, probeer het volgende uit te voeren:

ulimit -Sn unlimited && ulimit -Sl unlimited 

om de zachte limieten naar harde limieten te verhogen, of:

ulimit -l unlimited ulimit -n 10240 

om de maximale grootte van een proces in te stellen op onbeperkt en het maximale aantal geopende bestanden op 10240.

Zie: help ulimit voor meer informatie.

Om het blijvend te maken, voegt u de bovenstaande instellingen toe aan uw rc opstartbestanden (bijv. ~/.bashrc).


Je kunt ook /etc/sysctl.conf (zie: man sysctl.conf) gebruiken om de kernellimieten te verhogen, bijv.

kern.maxprocperuid=1000 kern.maxproc=2000 

Reacties

  • Wanneer deze fout optreedt, geeft de " retry " impliceren dat het herhaaldelijk zal proberen tot res ources beschikbaar komen?
  • @DavidB Of dat het deed het opnieuw probeerde, maar mislukte.
  • kern.maxprocperuid, kern.maxproc, kernel.maxprocperuid en kernel. maxproc bestaat niet op Ubuntu. Wat is daar het alternatief?

Answer

Het probleem kan ook worden opgelost met de volgende opdrachten:

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

Hier is gebruiker1 de gebruikersgroep waarvoor de limiet is overschreden

Opmerkingen

  • Het doden van elk proces dat bij de gebruiker hoort, lijkt een beetje zwaar. Bovendien zou dat yum -commando waarschijnlijk ook niet kunnen splitsen.
  • Het yum-commando zal door de rootgebruiker worden uitgevoerd, ervan uitgaande dat het probleem is opgetreden op een andere gebruiker dan root
  • Als de shell df niet kan splitsen, zou het problemen hebben om sudo ook te draaien.
  • BOFH-stijl. Ik vind het leuk!

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *