fork: yeniden dene: Kaynak geçici olarak kullanılamıyor


31

Sunucuma bağlanırken alıyorum,

-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

Ve ben de komutları takip etmeye çalışıyorum, o zaman sonuç aynı.

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

Neden bu geliyor? Ve nasıl çözebilirim?


2
Takasın aşırı yüklenmesi gibi görünüyor (/ muhtemelen tmp dosya sistemi tam)
— Lambert

2
ulimit -a, belki bir miktar işlem sınırına
— ulaşabilirsin

Yanıtlar:


20

Bunun nedeni, sunucunun kendisinde (veya) kullanıcı hesabınıza özel olan bazı kaynak sınırlamaları olabilir. Kabuğunuzdaki sınırlar üzerinden kontrol edilebilir ulimit -a. Özellikle ulimit -umaksimum kullanıcı işlemlerini kontrol ederseniz, maksimum işlemlere ulaştıysanız, çatal yeni bir hata yaratamaz ve bu hata ile başarısız olur. Bu ayrıca takas / bellek kaynağı sorunundan da kaynaklanıyor olabilir.


9

fork: Kaynak geçici olarak kullanılamıyor

Hata, geçerli kabuk kaynağının sınırlı olduğu anlamına gelir (sınırları gereği kontrol edin ulimit -a). Böylece, başka bir kabukta deneyebilir veya ulimitişletim sistemi üzerinde oluşturduğu işlemleri ve kabukta kullanılabilir kaynakları kontrol eden komutu kullanarak kaynakları artırabilirsiniz .

Sınırları artırmak için koşmayı deneyin:

ulimit -Sn unlimited && ulimit -Sl unlimited

Yumuşak sınırları zor olana yükseltmek için, veya:

ulimit -l unlimited
ulimit -n 10240 

bir işlemin maksimum boyutunu sınırsız, maksimum açık dosyayı 10240'a ayarlamak için.

Daha help ulimitfazla bilgi için bakınız:

Kalıcı hale getirmek için yukarıdaki ayarları başlangıç rc dosyalarınıza ekleyin (örn. ~/.bashrc).


Ayrıca , çekirdek sınırlarını artırmak için /etc/sysctl.conf(bkz: adam sysctl.conf) kullanabilirsiniz.

kern.maxprocperuid=1000
kern.maxproc=2000

1
Bu hata oluştuğunda, "yeniden deneme", kaynaklar kullanılabilir duruma gelinceye kadar tekrar tekrar deneneceği anlamına mı geliyor?
— DaveTheMinion,

@DavidB Yoksa o did yeniden deneme, ancak başarısız oldu.
— Kusalananda

@Kusalananda Tamam teşekkür ederim.
— DaveTheMinion

0

Sorun ayrıca aşağıdaki komutları kullanarak da çözülebilir:

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

Burada kullanıcı1, sınırın aşıldığı kullanıcı grubudur.


Kullanıcıya ait her bir işlemi tek tek öldürmek, biraz el uzatmış gibi görünüyor. Ayrıca, bu yumkomut muhtemelen çatal da yapamazdı.
— Kusalananda

Yum komutu sorunu kökünden farklı bir kullanıcı gerçekleştiğini varsayarak kök kullanıcı tarafından işletilecek
— Arun

Kabuk çatalla başarısız olursa, dfçalışan sorunları da olacaktır sudo.
— Kusalananda
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.