fork: retry: Risorsa temporaneamente non disponibile

Mentre mi connetto al mio server ottengo,

-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 

E provo anche a seguire i comandi, quindi il risultato è lo stesso.

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

Perché sta arrivando? E come posso risolverlo?

Commenti

  • Sembra che lo swap sia sovraccarico (il filesystem / tmp potrebbe essere pieno)
  • ulimit -a, forse hai raggiunto un limite di processo

Risposta

Ciò potrebbe essere dovuto a un limite di risorse sul server stesso (o) specifico per il tuo account utente. I limiti nella tua shell possono essere controllati tramite ulimit -a. Soprattutto controlla ulimit -u max processi utente, se hai raggiunto il numero massimo di processi, fork non è in grado di crearne di nuovi e non riesce con quellerrore. Ciò potrebbe anche essere dovuto a un problema di risorse di swap / memoria

Risposta

fork: risorsa temporaneamente non disponibile

Lerrore significa che la risorsa shell corrente è limitata (controlla i limiti con ulimit -a). Quindi puoi provare in unaltra shell o aumentare le risorse utilizzando il comando ulimit che controlla le risorse disponibili per la shell e i processi che crea sul sistema operativo.

Per aumentare i limiti, prova a eseguire:

ulimit -Sn unlimited && ulimit -Sl unlimited 

per aumentare i limiti flessibili a uno rigido, oppure:

ulimit -l unlimited ulimit -n 10240 

per impostare la dimensione massima di un processo su illimitato e il numero massimo di file aperti su 10240.

Vedi: help ulimit per ulteriori informazioni.

Per renderlo persistente, aggiungi le impostazioni di cui sopra nei file rc di avvio (ad esempio ~/.bashrc).


Puoi anche usare /etc/sysctl.conf (vedi: man sysctl.conf) per aumentare i limiti del kernel, ad esempio

kern.maxprocperuid=1000 kern.maxproc=2000 

Commenti

  • Quando si verifica questo errore, " riprova " implica che verrà tentato ripetutamente fino alla risoluzione le nostre forze diventano disponibili?
  • @DavidB O che ha riprovato, ma non è riuscito.
  • kern.maxprocperuid, kern.maxproc, kernel.maxprocperuid e kernel. maxproc non esistono su Ubuntu. Qual è lalternativa lì?

Risposta

Il problema può essere risolto anche utilizzando i seguenti comandi:

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

Qui utente1 è il gruppo di utenti per il quale è stato superato il limite

Commenti

  • Uccidere ogni singolo processo che appartiene allutente sembra un po pesante. Inoltre, quel comando yum probabilmente non sarebbe in grado di eseguire il fork.
  • Il comando yum verrà eseguito tramite lutente root, supponendo che il problema si sia verificato su un altro utente di root
  • Se la shell non riesce a eseguire il fork di df, avrebbe problemi a eseguire anche sudo.
  • Stile BOFH. Mi piace!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *