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.