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 anchesudo
. - Stile BOFH. Mi piace!