fork: coba lagi: Sumber daya tidak tersedia untuk sementara

31

Saat saya terhubung ke server saya,

-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

Dan saya coba ikuti perintah juga, maka hasilnya sama.

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

Kenapa ini datang? Dan bagaimana saya bisa mengatasinya?

Rakesh KR
sumber
2
Sepertinya swap kelebihan beban (/ tmp filesystem mungkin penuh)
Lambert
2
ulimit -a, mungkin Anda mencapai batas proses
c4f4t0r

Jawaban:

20

Ini bisa disebabkan oleh beberapa batasan sumber daya, baik di server itu sendiri (atau) khusus untuk akun pengguna Anda. Batas di shell Anda dapat diperiksa melalui ulimit -a. Terutama untuk memeriksa ulimit -uproses pengguna maks, jika Anda telah mencapai proses maks, garpu tidak dapat membuat yang baru dan gagal dengan kesalahan itu. Ini juga bisa karena masalah sumber daya swap / memori

VenkatC
sumber
9

fork: Sumber Daya tidak tersedia untuk sementara

Kesalahan berarti bahwa sumber daya shell saat ini terbatas (periksa batasnya dengan ulimit -a). Jadi Anda bisa mencoba di shell lain, atau menambah sumber daya dengan menggunakan ulimitperintah yang mengontrol sumber daya yang tersedia untuk shell dan memprosesnya pada sistem operasi.

Untuk menambah batas, coba jalankan:

ulimit -Sn unlimited && ulimit -Sl unlimited

untuk menaikkan batas lunak ke yang keras, atau:

ulimit -l unlimited
ulimit -n 10240 

untuk mengatur ukuran maksimum suatu proses menjadi tidak terbatas dan jumlah maksimum file terbuka menjadi 10240.

Lihat: help ulimituntuk informasi lebih lanjut.

Untuk membuatnya terus-menerus, tambahkan pengaturan di atas ke dalam file rc startup Anda (mis ~/.bashrc.).


Anda juga dapat menggunakan /etc/sysctl.conf(lihat: man sysctl.conf) untuk meningkatkan batas kernel, mis

kern.maxprocperuid=1000
kern.maxproc=2000
kenorb
sumber
1
Ketika kesalahan ini terjadi, apakah "coba lagi" menyiratkan bahwa ia akan mencoba berulang kali sampai sumber daya tersedia?
DaveTheMinion
@ DavidB Atau itu memang coba lagi, tetapi gagal.
Kusalananda
@ Kusalananda Oke terima kasih.
DaveTheMinion
0

Masalahnya juga dapat diatasi dengan menggunakan perintah berikut:

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

Di sini user1 adalah grup pengguna yang batasnya telah terlampaui

Arun
sumber
Membunuh setiap proses milik pengguna tampaknya agak berat. Juga, yumperintah itu mungkin tidak akan bisa melakukan fork juga.
Kusalananda
Perintah yum akan dijalankan melalui pengguna root, dengan asumsi masalah telah terjadi pada pengguna yang berbeda dari root
Arun
Jika shell gagal melakukan fork, dfia akan mengalami masalah sudojuga.
Kusalananda